Hallo allerseits. Um mein Problem zu veranschaulichen mal ein kleines Beispiel anhand einer Bücherei.
Zwei Tabellen:
- User
- User_Bücher
Nun habe ich eine Suchmaske, die sowohl die Userdaten, also auch die Bücher, die der User ausgeliehen hat enthällt.
Wenn ich nun alle User haben will, die Meier heissen und die Bibel ausgeliehen haben, lautet mein Select...
Funktioniert auch alles Prima. Auch wenn ich nur nach 'Meier' suche.
Nun mein Problem:
Der Eintrag in der Tabelle db_user_buecher wird nur angelegt, wenn der User überhaupt mal ein Buch ausgeliehen hat. Ist er nur registriert, gibt dort auch kein Eintrag für ihn.
Somit findet 'WHERE b.user_id = a.user_id' nichts - auch wenn ich nur nach den Namen suche.
Gibt es eine Mögichkeit die Tabellen nur zu verknüpfen, wenn es auch einen Eintrag gibt?
Quasi so was...
Bin gespannt... :-)
Dank & Grüße,
Andi
Zwei Tabellen:
- User
- User_Bücher
Nun habe ich eine Suchmaske, die sowohl die Userdaten, also auch die Bücher, die der User ausgeliehen hat enthällt.
Wenn ich nun alle User haben will, die Meier heissen und die Bibel ausgeliehen haben, lautet mein Select...
PHP-Code:
SELECT a.*
FROM db_user a, db_user_buecher b
WHERE 1
AND b.user_id = a.user_id
AND a.nachname = 'Meier'
AND b.buch = 'Bibel'
Nun mein Problem:
Der Eintrag in der Tabelle db_user_buecher wird nur angelegt, wenn der User überhaupt mal ein Buch ausgeliehen hat. Ist er nur registriert, gibt dort auch kein Eintrag für ihn.
Somit findet 'WHERE b.user_id = a.user_id' nichts - auch wenn ich nur nach den Namen suche.
Gibt es eine Mögichkeit die Tabellen nur zu verknüpfen, wenn es auch einen Eintrag gibt?
Quasi so was...
PHP-Code:
SELECT a.*
FROM db_user a, db_user_buecher b
WHERE 1
if(b.user_id = a.user_id){
AND b.user_id = a.user_id
AND b.buch = 'Bibel'
}
AND a.nachname = 'Meier'
Dank & Grüße,
Andi
Kommentar