Ich habe derzeit 3 Tabellen, die ich für Leute verwenden, um Reservierungen für bestimmte Geräte zu machen.Semi-Komplizierte PHP/MySQL Select-Anweisung
Hier sind meine Tabellen:
tblEquipment:
id name description
1 Camera Takes pictures
2 Projector Projects pictures
3 Laptop Portable Computer
tblEvents:
id start end first_name last_name email
1 2009-08-10 2009-08-11 John Doe [email protected]
2 2009-08-15 2009-08-16 Jane Doe [email protected]
tblEventData:
id eventID equipmentID
1 1 1
2 1 2
Gerade jetzt, ein Benutzer eine Abfrage mit ihren geforderten Zeiten vorlegen, dann werden sie alle verfügbaren Geräte sehen.
Mit dem obigen Beispiel wird ein Benutzer, der nach einem Gerät zwischen 8/10-8/11 sucht, feststellen, dass das einzige Gerät verfügbar ist, das verfügbar ist: equipmentID 3 (Laptop).
Wie kann ich meine Abfrage erstellen, um nur die verfügbaren Geräte basierend auf den angeforderten Zeiten zurückzugeben?
Dies ist, was ich mit so weit habe kommen, kann es aber nicht an der Arbeit:
SELECT tblequipment.id as name, tblEvents.start as start, tblEvents.end as end
FROM tblEquipment
INNER JOIN tblEventData on tblEventData.equipmentID = tblEquipment.id
INNER JOIN tblEvents on tbleventdata.eventID = tblEvents.id
WHERE NOT EXISTS(SELECT * FROM tblEvents WHERE $end >= start AND $start <= end)
Irgendwelche Ideen? Vielen Dank!
Danke für die Antwort, VoteyDisciple, aber ich bekomme jetzt den Fehler: Unbekannte Spalte 'tblEquipment.equipment.ID' in 'Where-Klausel' Irgendwelche Idee? –
Ich habe Ihr ursprüngliches Schema falsch gelesen. Es gibt tatsächlich keine Spalte mit diesem Namen; Sie haben es tblEquipment.id genannt - ich werde die entsprechende Änderung zusammen mit einer weiteren Änderung vornehmen. – VoteyDisciple
das letzte Teil sollte nur tblEventData.equipmentID = tblEquipment.id – localshred