hallo zusammen
jemand hat mir gesagt, dass es bei sql-join's relevant ist wie die reihenfolge der "operanden" beim vergleichsoperator definiert werden. als test-db habe ich die "credit"-db von sql server genommen:
sowie
...wie ich aber sehe kommt immer das gleiche dabei raus.
ein anderes beispiel: es gibt a.) eine kundentabelle (adressdaten etc.) sowie b.) eine bestellungstabelle.
nun möchte man allen kunden mit allen bestellungen (wenn vorhanden! daher "left join") ausgeben:
(pseudo-code)
im anderen fall möchte man alle bestellungen wenn möglich zusätzlich mit kunden ausgeben, jedoch auch wenn der kunden in der zwischenzeit gelöscht wurde (foreign key -> "SET NULL" beim löschen des PK's in der kundentabelle!)
(pseudo-code)
...das ist doch die einzige art und weise wie man das "gegenteil" erreichen kann, oder macht man das wirklich mit der umkehrung der operanden??? leider fehlt mit z.zt. die möglichkeit das praktisch zu testen.
und: bei einem "OUTER JOIN" ist es irrelevant welche tabelle beim "SELECT" und welche beim "JOIN" angegeben wird, wahrscheinlich auch beim "OUTER JOIN"...? sehe ich das richtig?
vielen dank für eure feedbacks.
jemand hat mir gesagt, dass es bei sql-join's relevant ist wie die reihenfolge der "operanden" beim vergleichsoperator definiert werden. als test-db habe ich die "credit"-db von sql server genommen:
SQL:
SELECT
*
FROM member mbr
LEFT JOIN payment pmt
ON ([B][COLOR="Red"]pmt.member_no = mbr.member_no[/COLOR][/B])
sowie
SQL:
SELECT
*
FROM member mbr
LEFT JOIN payment pmt
ON ([B][COLOR="Red"]mbr.member_no = pmt.member_no[/COLOR][/B])
...wie ich aber sehe kommt immer das gleiche dabei raus.
ein anderes beispiel: es gibt a.) eine kundentabelle (adressdaten etc.) sowie b.) eine bestellungstabelle.
nun möchte man allen kunden mit allen bestellungen (wenn vorhanden! daher "left join") ausgeben:
(pseudo-code)
SQL:
SELECT * FROM kunden LEFT JOIN bestellungen ON (kunden.ID = bestellungen.ID)
im anderen fall möchte man alle bestellungen wenn möglich zusätzlich mit kunden ausgeben, jedoch auch wenn der kunden in der zwischenzeit gelöscht wurde (foreign key -> "SET NULL" beim löschen des PK's in der kundentabelle!)
(pseudo-code)
SQL:
SELECT * FROM bestellungen LEFT JOIN kunden ON (kunden.ID = bestellungen.ID)
...das ist doch die einzige art und weise wie man das "gegenteil" erreichen kann, oder macht man das wirklich mit der umkehrung der operanden??? leider fehlt mit z.zt. die möglichkeit das praktisch zu testen.
und: bei einem "OUTER JOIN" ist es irrelevant welche tabelle beim "SELECT" und welche beim "JOIN" angegeben wird, wahrscheinlich auch beim "OUTER JOIN"...? sehe ich das richtig?
vielen dank für eure feedbacks.