Mailinglisten-Archive |
Stefan Brueckmann wrote: > Hallo Liste, > > Ich frage den Inhalt eines Eintrages aus zwei Tabellen mittels > $sql = "SELECT * FROM menue, content WHERE content.id='".$id."' AND > menue.id='".$id."'" ; > $ausgabe = mysql query($sql); > ab. > > In beiden Tabellen kommt der Wert id vor und die anderen Werte in > dieser Reihe gehören alle zu diesem Wert. > Wenn beide Tabellen gefüllt sind, ist das Ergebnis alle Werte die es > zu dieser id gibt. > Schön so will ich es haben. > > In meiner Testdatenbank gibt es die Fälle wo es zu der ID in der > einen Tabelle Werte gibt und in der anderen Tabelle weder Werte noch > diese ID. Das sollte im wahren leben gar nicht möglich sein. Aber man > weiß ja nie. Hier wird nichts ausgeben. > Auch schön weil ich es logisch nachvollziehen kann. > > Verwende ich nun OR statt AND wird mir zwar in den Fällen wo es nur > Inhalt in der einen Tabelle gibt, dieser ausgegeben, aber wenn in > beiden Tabellen Werte sind, bekomme ich nur noch die Werte von > Tabelle Menue und das verstehe ich nicht mehr. > > Kann mir einer erklären wieso das so ist und wie die Abfrage aussehen > muß damit ich immer alle Werte zur gesuchten ID ausgeben bekomme, > egal ob in beiden Tabellen Werte vorhanden sind oder nicht? > > Die ID ist übriegens keine Zahl. > > > Ade merci > Stefan Brückmann > Hi, ich verstehe das so, dass Du alle Einträge aus menue zu einer gegebenen ID suchst, oder? Egal, ob dazu was in content steht. Wenn Du nur die Einträge suchst, die die selbe id in menu und content haben, solltest Du so vorgehen: SELECT c.spalte1, ..., m.spalte1, ... FROM menue AS m, content AS c WHERE m.id='$id' AND c.id=m.id Solltest Du auch Einträge aus menue suchen, die nicht zwingend in content enthalten sind, funktioniert ein LEFT JOIN: SELECT c.spalte1, ..., m.spalte1, ... FROM menue AS m LEFT JOIN content AS c ON c.id=m.id WHERE m.id='$id' Dann sind die Spalten aus content NULL, wenn es keinen Eintrag zur ID aus menue gibt. -- Mit freundlichen Grüßen Marco Schumann Technologie-Team = = = = = = = = = = = = = = = = = = = = united-domains AG Gautinger Str. 10 D-82319 Starnberg Tel.: 0 81 51 / 3 68 67 - 0 Fax.: 0 81 51 / 3 68 67 - 77 URL: http://www.united-domains.de eMail: mailto:schumann_(at)_united-domains.de = = = = = = = = = = = = = = = = = = = = --- Infos zur Mailingliste, zur Teilnahme und zum An- und Abmelden unter -->> http://www.4t2.com/mysql
php::bar PHP Wiki - Listenarchive