根据另一个 table 的值丢弃 SQL 结果

discard SQL result based on the value of another table

当涉及到嵌套 sql 语句时,我很迷茫。

我目前正在建立一个数据库来管理行政套房,我希望能够通过比较我租用的套房与我可用的套房总数来找到空置套房。

这是我能想到的最好的:

SELECT * FROM `executiveSuites` 
LEFT JOIN `executiveLease` 
ON executiveLease.suiteNumber = executiveSuites.SuiteNumber 
AND executiveLease.Property = executiveSuites.BuildingID 
WHERE NOT EXISTS 
( SELECT * FROM `executiveLease` WHERE executiveLease.status = 1 )  

预期的结果是任何没有租约且状态为 1 的套房都会出现,但我得到的是一个空白列表。

我是自学成才,不知道自己不知道什么,所以非常感谢任何帮助或至少在正确方向上的一点。

看来你需要

SELECT * 
FROM `executiveSuites` es
WHERE NOT EXISTS ( SELECT NULL
                   FROM `executiveLease` el
                   WHERE el.suiteNumber = es.SuiteNumber 
                     AND el.Property = es.BuildingID 
                     AND el.status = 1 ) 

SELECT * 
FROM `executiveSuites` es
LEFT JOIN `executiveLease` el ON el.suiteNumber = es.SuiteNumber 
                             AND el.Property = es.BuildingID
WHERE NOT EXISTS ( SELECT NULL 
                   FROM `executiveLease` el_s
                   WHERE el_s.suiteNumber = es.SuiteNumber 
                     AND el_s.Property = es.BuildingID 
                     AND el_s.status = 1 )