私は現在、3つのテーブルを持っています。これは、私が人々のために特定の機器を予約するために使用しているテーブルです。ここで準複雑なPHP/MySQL Selectステートメント
は私のテーブルです:
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