1
好吧我真的被卡住了。我有三個表如下:如何獲取表中的值不存在於mysql中的所有行
表合同
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
任何幫助會如此感激!讓我知道如果我失去了一些東西。 Thannks提前!
現在顯示什麼? – polin
你還可以添加你想要的輸出嗎? –
在利率表book_date是不一樣的我ncontracts開始結束日期。你想獲得_if的日期,如果我想得到2012-12-14和2012-12-15之間日期的費率,我會得到一個結果。但是,如果我搜索了2012-12-12到2012-12-14,我沒有得到result_,如果您在'contracts'表中搜索那樣的日期,您根本沒有收到數據。現在在您的查詢中,您不是在**日期之間搜索**,而是在相反的...... – Justin