2015-10-27 23 views
0

對應的第二行:查找行,而不考慮到下表中的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的行),如第三行?

+0

你是指第三嗎? – DarkKnight

+0

你說得對,對不起!我的意思是第三個,是的。 – smares

回答

0

您是否在尋找這個..

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 
+1

'[]'是SQL-Server。 MySQL使用反引號。 – Barmar

+0

@Barmar:糾正它。謝謝! – DarkKnight

0

你可以用聚集做到這一點,一個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