2012-04-02 8 views
1

Was ich versuche zu tun, die folgende: -SQL-Joins Anzeige nur mal

Abfrage der Datenbank nur die Zeitschlitze zu zeigen, die nicht verwendet wurden und es zu einem Dropdown-Feld füllen. (Ich weiß, wie man die Dropdown-Feld füllen Sie es.)

Das ist, was ich habe: - (Tabellen)

 Appointment:-    Availability:- 
    AppointmentTime   AvailabilityTime 
    AppointmentDate   EmployeeId 
    ClientID 
    EmployeeId 

Von der Erforschung um mir ziemlich sicher bin, ich muß zu einem Join Befehl in meiner SQL-Anweisung.

Für mich ist der logische Weg, dies zu tun, dass, um zu erreichen, was ich will ich die AvailabilityTime und Mitarbeiter-ID gegen die in der Tabelle Termine und wenn es keine Übereinstimmung, die den gewählten Termin bedeuten sollte Die Zeit ist frei, dies gibt Anlass, alle verfügbaren freien Slots anzuzeigen.

Das Problem ist, ich bin nicht ganz sicher, wie man SQL-weise tun, irgendwelche Vorschläge würde sehr geschätzt werden!

+0

Können Sie einige Beispieldaten und gewünschten o/p – Teja

Antwort

1

Ich denke, Ihr Schema ist durcheinander (Sie haben Zeit in einer Tabelle und Datum & Zeit in einem anderen). Aber das Wesentliche wäre etwa so:

SELECT * 
FROM Availability 
WHERE NOT EXISTS 
(
    SELECT 1 
    FROM Appointment 
    WHERE Appointment.AppointmentTime = Availability.AvailabilityTime 
     AND Appointment.EmployeeID = Availability.EmployeeID 
)