PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   MySQLi/PDO/(MySQL) (http://www.selfphp.de/forum/forumdisplay.php?f=22)
-   -   Probleme bei SQL-Abfrage (http://www.selfphp.de/forum/showthread.php?t=25003)

schef92 05.07.2013 17:37:48

Probleme bei SQL-Abfrage
 
Hallo,
hab ein für mich rießen problem dass ich nicht hinbekomm!!

es geht um eine Lebensmittel und Rezeptverwaltung.

Ich brauch eine SQL - Abfrage, mit der ich Rezepte anzeigen kann, die aufgrund der passenden userID und ausreichend verfügbarer zutaten gekocht werden können.

Folgende Datenbank-Tabellen existieren

nutzer(userID, mail, passwort, nachname, vorname, geburtstag)
rezept(rezeptID, name, beschreibung, userid)
lebensmittel(lebensmittelID, bezeichnung, masseinheit)
vorraete(userID, lebensmittelID, verfuegbareMenge)
zutat(rezeptID, lebensmittelID, benoetigteMenge)

Mit folgender SQL abfrage hab ich es selbst versucht aber es funktioniert nicht,
Es werden mir immer Alle vorhandenen Rezepte ausgegeben.:

SELECT DISTINCT rezept.rezeptid, rezept.name
FROM rezept, zutat, vorraete
where rezept.userid =1
and rezept.rezeptid = zutat.rezeptid
and zutat.lebensmittelid = vorraete.lebensmittelid
and vorraete.userid =1
and zutat.benoetigteMenge >= vorraete.verfuegbareMenge
order by name

wäre echt cool wenn mir einer helfen könnte

Grüße Stefan

ichbins 08.07.2013 22:51:16

AW: Probleme bei SQL-Abfrage
 
Hallo,

ich bin nicht der SQL-Experte, daher nur ein Gedanke. Funktioniert es, wenn Du die verwendeten Tabellen mit "JOINS" verknüpfst? Nach dem Motto: "Select ... FROM nutzer LEFT JOIN rezepte ON nutzer.userID=rezept.userID WHERE...". Du verknüpfst hier schließlich drei Tabellen. Da muss SQL doch wissen, über welche Felder diese Verknüpfungen funktionieren. Nur weil in den drei Tabellen die Bezeichnung "userID" vorkommt, muss das ja für SQL noch nicht bedeuten, dass hierüber auch die Verknüpfungen laufen. Du müsstest dann natürlich noch einen zweiten "LEFT JOIN" einbauen, um auch die dritte Tabelle zu verknüpfen.


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:42:32 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.