phpbar.de logo

Mailinglisten-Archive

Eigenartiges Abfrageergebnis aus zwei Tabellen

Eigenartiges Abfrageergebnis aus zwei Tabellen

Wolfgang Hauck mysql-de_(at)_lists.bttr.org
Wed, 28 Aug 2002 10:46:49 +0200


>> ich verstehe das so, dass Du alle Einträge aus menue zu einer
>> gegebenen ID suchst, oder? Egal, ob dazu was in content steht.

>Nein ich will alle Einträge zu einer ID egal, ob sie in content oder
>menue stehen.

>Aber ich denke mit dem was unten ausgeführt hast, wird es gehen.

Hi Stefan,

Ganz so stimmt das nicht. Wenn du alle Einträge zu einer ID erhalten willst 
musst du zunächst die referentielle Integrität feststellen. Diese geht aus 
deiner Anfrage nicht hervor.

Wenn Deine Verknüpfung content.id -> menue.id = 1 : n lautet musst du 
folgendes Statement absetzen:

$sql = "SELECT menue.* FROM menue
LEFT JOIN content ON menue.id = content.id
WHERE menue.id = '".$id."'
OR (menue.id = '".$id."' AND content.id IS NULL)";

Im Falle von menue.id -> content.id = 1 : n lautet das Statement:

$sql = "SELECT content.* FROM content
LEFT JOIN menue ON content.id = menue.id
WHERE content.id = '".$id."'
OR (content.id = '".$id."' AND menue.id IS NULL)";

Erst damit erhältst du wirklich alle Datensätze. Ausserdem ist es in diesem 
Falle auch ein Select * nicht sinnvoll, da ja in der Referenztabelle auch 
nichts drinstehen kann.

IMHO würde ich die Datensätze die die referentielle Integrität verletzen 
rausschmeissen.

MFG Wolfgang



---
Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive