我可以想象这个问题以某种方式存在,但是我没有找到我想要的东西。
我需要从主查询中获得的结果中删除找到的值。
请考虑以下内容:
mainquery:
SELECT idTable
FROM tblTables
WHERE NOT IN idTables = ( **SUBQUERY HERE** )
AND dtSeats >= 4
LIMIT 1;
子查询:
SELECT idTable
FROM tblTables,tblReservation
WHERE tblTables.idTable = tblReservation.fiTable
AND fiTime = 1
AND dtResDate = "2020-06-16"
在tblTables中有idTable和dtSeats。
在tblReservation中是fiTime和dtResDate。
子查询最多可以包含三行。 我需要获得尽可能少的座位的第一张免费桌子。
感谢您的帮助!
答案 0 :(得分:0)
拥有DDL和一些示例数据会有所帮助,但是我认为您正在寻找的是NOT EXISTS子句。它返回外部查询中与内部查询中的记录不匹配的所有内容。
SELECT idTable
FROM tblTables tt
WHERE NOT EXISTS (
SELECT NULL FROM tblReservation tr WHERE tt.idTable = tr.idTable AND
tr.dtResDate = '2020-06-16'
)
AND dtSeats >= 4
ORDER BY tt.dtSeats
LIMIT 1