わかりました私は本当に立ち往生しています。次のように3つのテーブルがあります。
テーブルコントラクト
contract_id | hotel_id | start | end
---------------------------------------------------
1 356 2012-12-12 2012-12-16
2 258 2012-12-12 2012-12-16
3 211 2012-12-12 2012-12-16
テーブルhotel_info
hotel_id | hotel_desc
------------------------------
356 description 1
258 description 2
211 description 3
テーブル料金
contract_id | hotel_id | book_date | rate | closed
--------------------------------------------------------------
1 258 2012-12-12 250.00 1
1 258 2012-12-13 250.00 0
1 258 2012-12-14 250.00 1
1 258 2012-12-15 250.00 1
今私がやろうとしているのは、ユーザーが入力する特定の日付範囲の間の契約テーブルからすべての行を取得することです。ご覧のとおり、レート表は個々の日付ごとに区切られています。行に関連付けられたレートが 0 の場合、行を取得したくありません。たとえば、2012-12-14 と 2012-12-15 の間の日付のレートを取得したい場合、結果が得られます。しかし、2012-12-12 から 2012-12-14 を検索しても、結果が得られません。これが非常に紛らわしいかどうかはわかりませんが、これまでのところ動作していないmysqlがあります:
SELECT r.*, c.* FROM contracts AS c
INNER JOIN hotel_info AS r ON r.hotel_id = c.hotel_id
INNER JOIN rates AS ra ON ra.contract_id = c.contract_id AND ra.closed != 0
WHERE c.start <= '2012-12-12' AND c.end >= '2012-12-16' GROUP BY r.room_name
これについての助けをいただければ幸いです!何か不足している場合はお知らせください。よろしくお願いします!