獨特的價值是我的表稱爲companies
如何找到表
company_id Status
1001 OFF
1002 OFF
1003 OFF
1003 ON
我需要避免如有company_id
與status 'ON'
我需要出去放像下面
company_id Status
1001 OFF
1002 OFF
如何我寫這個查詢
獨特的價值是我的表稱爲companies
如何找到表
company_id Status
1001 OFF
1002 OFF
1003 OFF
1003 ON
我需要避免如有company_id
與status 'ON'
我需要出去放像下面
company_id Status
1001 OFF
1002 OFF
如何我寫這個查詢
SELECT *
FROM tableName
WHERE company_ID NOT IN
(
SELECT company_ID
FROM tableName
WHERE Status = 'ON'
)
或使用LEFT JOIN
SELECT a.*
FROM tableName a
LEFT JOIN
(
SELECT company_ID
FROM tableName
WHERE Status = 'ON'
) b ON a.company_ID = b.company_ID
WHERE b.company_ID IS NULL
SELECT Company_Id, Status FROM Companies C
WHERE NOT EXISTS(SELECT * FROM Companies
WHERE Company_Id = C.Company_id AND Status = 'ON')
這顯示退出一個 – user2097335 2013-03-26 11:37:33
爲什麼這個答案downvoted? – 2013-03-26 11:41:07
@JW不知道。這阻止我們提供解決方案:( – 2013-03-26 11:42:31
SELECT company_ID, MAX(Status) AS Status FROM companies
GROUP BY company_ID
HAVING MAX(Status) = 'OFF'
您可以使用MIN和MAX函數的字符串值排序。在這種情況下,MAX將在OFF之前返回ON。
正確的答案,但很奇怪的做法呢? – Waller 2013-03-26 11:35:10
@waller爲什麼很奇怪? – 2013-03-26 11:36:17
檢查我的查詢,是不是一個簡單的where子句足以做到這一點? – Waller 2013-03-26 11:36:47