SQL MySQL Abfrage wo in zweiter Tabelle keine Datensätze sind

Schwenni

Ensign
Registriert
Okt. 2006
Beiträge
159
Es gibt also 2 Tabellen.
Eine für Termine und die andere für die Buchungen dazu.

vereinfacht schauen die so aus:

Termine
======
id, datum, name

Buchungen
========
id, termin_id, user_id

Die Benutzer sind in einer dritten Tabelle aber hier nicht relevant.


Ich möchte jetzt alle Datensätze aus "Termine" habe wo es für einen bestimmten Benutzer keine Buchungen zu dem Termin gibt.

Die user_id des Benutzers ist in der Variable "$uid".

Ich weiß leider nicht wie ich das abfragen kann. Im Moment habe ich eine Abfrage aller Termin und bei der Ausgabe dieser gehe ich bei jedem Termin nochmal per SQL die Buchungen für den Benutzer durch .... nicht schön!

Wie könnte das also mit einer SQL ausschauen. Klar ist mir schon das man per LEFT JOIN die beiden Tabellen verknüpfen muss mit termin.id = buchungen.termin_id. Aber ich kann ja nichts in der WHERE Klausel nutzen weil ich ja wissen will wo es keine Datensätze in Buchungen gibt bei betreffenen USER.

Kann wer helfen?
 
Erste Annäherung...
Code:
SELECT DISTINCT Termine.id
FROM Termine LEFT JOIN Buchungen
ON Termine.id = Buchungen.termin_id AND Buchungen.user_id = $uid
WHERE Buchungen.id IS NULL

Keine Ahnung, ob das "Buchungen.user_id = $uid" unter MySQL erlaubt ist - unter MS SQL Server würde das so gehen.
 
Zuletzt bearbeitet:
Danke werd ich morgen mal testen und Bescheid geben
Ergänzung ()

Funktioniert einwandfrei.

Vielen Dank!

mfG
 
Zurück
Oben