Hallo,
Eine Frage drängt sich mir nätürlich noch auf:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Was passiert, wenn im CREATE TABLE Syntax die Spalten
als NOT NULL definiert wurden, und der RIGHT/LEFT OUTER JOIN
ein nicht vorhandenes Feld mit NULL auffüllen versucht?
Was sollte passieren?
Die Inhalte der Felder im SELECT-Resultset haben keine Rückwirkung auf den wirklichen Tabelleninhalt. Sie werden nur aus der Tabelle _gelesen_. Ein SELECT wird aber _nie_ etwas in eine Tabelle _schreiben_. Wozu brauchte man sonst INSERT und UPDATE?
Deine Frage wäre ähnlich wie diese:
Wo wird bei
SELECT betrag*1.16 as bruttobetrag FROM tabelle
der Bruttobetrag gespeichert?
Antwort:
Nirgends. Er steht nur temporär im Resultset des SELECTS im Aliasfeld "bruttobetrag".
Stell Dir
SELECT name, vorname FROM tabelle
einfach immer als
SELECT name as name, vorname as vorname FROM tabelle
vor.
Weiters:
Wie schaut ein FULL OUTER JOIN aus?
In MySQL gar nicht, oder welches MySQL kann einen FULL OUTER JOIN?
Konstantin lebt in einer Stadt mit einer ID die es nicht gibt.
Und in München lebt gar keiner.
Reicht das um einen FULL OUTER JOIN zu veranschaulichen?
Ja, um diese Datensätze alle zu erreichen, wäre ein FULL OUTER JOIN nötig. An diesem Beispiel siehst Du aber schon, dass in der Praxis ein FULL OUTER JOIN selten nötig ist. Die "ID die es nicht gibt" sollte es auch nicht geben ;-))
viele Grüße
Axel