Mysql 连接表但不显示满足子句的行

Mysql 连接表但不显示满足子句的行,mysql,join,between,Mysql,Join,Between,我正在mysql中加入表,但我有一个表保存日期: table: cutoff date roomid --------------------------- 2012-11-03 25 2012-11-04 25 2012-11-05 25 2012-11-06 25 下面是我的SQL查询: SELECT t.RoomId, t.USD, t.MXN, i.Image, a.RoomName, a

我正在mysql中加入表,但我有一个表保存日期:

table: cutoff

      date       roomid  
---------------------------  
    2012-11-03     25
    2012-11-04     25
    2012-11-05     25
    2012-11-06     25
下面是我的SQL查询:

SELECT t.RoomId, t.USD, t.MXN, i.Image, a.RoomName, a.RoomDesc, cu.date FROM Tarifas AS t 
INNER JOIN Images AS i ON i.RoomId = t.RoomId
INNER JOIN Availability AS a ON a.RoomId = t.RoomId 
INNER JOIN cutoff AS cu ON cu.roomid = t.RoomId AND cu.date NOT BETWEEN '$from' and '$to' 
WHERE t.Start <= '$from' AND t.End >= '$from' ORDER BY USD 
请尝试以下操作:

SELECT t.RoomId, t.USD, t.MXN, i.Image, a.RoomName, a.RoomDesc
FROM Tarifas AS t 
INNER JOIN Images AS i ON i.RoomId = t.RoomId
INNER JOIN Availability AS a ON a.RoomId = t.RoomId 
WHERE t.RoomID NOT IN
    (SELECT DISTINCT roomid FROM cutoff
    WHERE date BETWEEN '$from' AND '$to')
AND t.Start <= '$from' AND t.End >= '$from'
ORDER BY USD 

请张贴您的Tarifas表的样本。这不起作用。。。它仍然会返回所有结果,但不排除有截止日期的房间。感谢您的尝试,第一个建议将返回没有截止日期或截止日期超出所选日期间隔的房间。使用子查询的新建议应按预期工作。
SELECT t.RoomId, t.USD, t.MXN, i.Image, a.RoomName, a.RoomDesc
FROM Tarifas AS t 
INNER JOIN Images AS i ON i.RoomId = t.RoomId
INNER JOIN Availability AS a ON a.RoomId = t.RoomId 
WHERE t.RoomID NOT IN
    (SELECT DISTINCT roomid FROM cutoff
    WHERE date BETWEEN '$from' AND '$to')
AND t.Start <= '$from' AND t.End >= '$from'
ORDER BY USD