根据另一个 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 )
当涉及到嵌套 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 )