對應的第二行:查找行,而不考慮到下表中的MySQL
type | area | shelf
-----|------|------
1 | a | 5
2 | a | 5
2 | a | 6
1 | a | 7
2 | a | 7
1 | b | 3
與2型的區域/擱板組合條目總是需要與類型1類型1的相應條目可在其自己的存在(例如最後一行)。
如何找到孤兒類型2行(類型2沒有對應行類型1的行),如第三行?
對應的第二行:查找行,而不考慮到下表中的MySQL
type | area | shelf
-----|------|------
1 | a | 5
2 | a | 5
2 | a | 6
1 | a | 7
2 | a | 7
1 | b | 3
與2型的區域/擱板組合條目總是需要與類型1類型1的相應條目可在其自己的存在(例如最後一行)。
如何找到孤兒類型2行(類型2沒有對應行類型1的行),如第三行?
您是否在尋找這個..
SELECT t2.*
FROM yourtable t1
RIGHT JOIN yourtable t2 ON t1.area = t2.area
AND t1.shelf=t2.shelf
AND t1.`type`=1
AND t2.`type`=2
WHERE t1.`type` IS NULL
'[]'是SQL-Server。 MySQL使用反引號。 – Barmar
@Barmar:糾正它。謝謝! – DarkKnight
你可以用聚集做到這一點,一個having
條款:
select shelf, area
from t
group by shelf, area
having sum(type = 2) > 0 and -- at least one type 2
sum(type = 1) = 0; -- no type 1
你是指第三嗎? – DarkKnight
你說得對,對不起!我的意思是第三個,是的。 – smares