나는 현재 장비의 특정 부분을 예약하는 사람들을 위해 사용하고있는 3 개의 테이블을 가지고 있습니다.준결승 PHP/MySQL 선택 진술
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
지금, 사용자가 그 때 사용할 수있는 모든 장비를 볼 수 있습니다, 자신의 요청 시간으로 쿼리를 제출합니다 : 여기
내 테이블입니다.위의 예를 사용하여 사용자가 8/10-8/11 사이의 장비를 찾고있는 경우 사용할 수있는 장비는 equipmentID 3 (노트북)뿐입니다.
요청한 시간에 따라 사용 가능한 장비 만 반환하도록 쿼리를 만들려면 어떻게해야합니까?
이것은 내가 지금까지 마련했지만,이 동작하지 않습니다 무엇 :
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)
어떤 아이디어? 감사!
그러나 답장을 보내 주셔서 감사합니다, VoteyDisciple, 그러나 이제 오류가 발생합니다 : 알 수없는 열 'tblEquipment.equipmentID'where 절 '어떤 생각? –
원본 스키마를 잘못 읽었습니다. 그 이름의 란은 실제로 없다. 당신은 tblEquipment.id라는 이름을 붙였습니다 - 나는 또 다른 변화와 함께 적절한 편집을 할 것입니다. – VoteyDisciple
마지막 부분은 tblEventData.equipmentID = tblEquipment.id이어야합니다. – localshred