Mailinglisten-Archive |
Stefan Hundenborn schrieb am Dienstag, den 28. September 1999: > ist es denn sinnvoll, eine Bedingung auf einer Spalte einer > optionalen Tabelle zu setzen? Ja, aber an der passenden Stelle! > Bsp: > Tabelle1 > - ID > - SpalteTab1 > > Tabelle2 > - ID > - Tab1ID > - SpalteTab2 > > hole alle aus Tabelle1 und nur passende aus Tabelle2: > SELECT SpalteTab1, SpalteTab2 > FROM Tabelle1 LEFT JOIN Tabelle2 ON Tabelle1.ID = Tabelle2.Tab1ID > WHERE SpalteTab2 = 'irgendwas'; > > jetzt kommen alle Einträge aus Tabelle 1 und wenn es gleiche IDs in Tabelle2 > gibt, die der Bedingung genügen, kommen die auch. > Falls die Bedingung SpalteTab2 aber nicht erfüllt ist, kommt nur die Zeile > aus Tabelle1 und es sieht so aus, daß es keinen Eintrag in Tabelle2 gibt. Verschiebe einfach die Zusatzbedingung in den ON-Teil, denn dann gelten die Regeln des LEFT JOIN und die Bedingnung liefert "true", auch wenn kein passender Datensatz aus Tabelle2 existiert: SELECT SpalteTab1, SpalteTab2 FROM Tabelle1 LEFT JOIN Tabelle2 ON Tabelle1.ID = Tabelle2.Tab1ID AND SpalteTab2 = 'irgendwas' ; Ciao, Martin -- Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://home.pages.de/~ramsch/ > PGP KeyID=0xE8EF4F75 FiPr=52 44 5E F3 B0 B1 38 26 E4 EC 80 58 7B 31 3A D7 --- *** Abmelden von dieser Mailingliste funktioniert per E-Mail *** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe
php::bar PHP Wiki - Listenarchive