phpbar.de logo

Mailinglisten-Archive

Re: Datenintegritaet bewahren .. aber wie ?
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Datenintegritaet bewahren .. aber wie ?



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


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive