簡體   English   中英

根據另一個表的值丟棄 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 ) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM