2012-05-11 66 views
0

我有一個帶有布爾值的表,我想知道是否有一組id具有兩個值。mysql如果...語句符合兩個條件,則選擇true

這個SQL選擇組產品我想測試:

SELECT 
    cp.ItemID, 
    cp.IsUnitsOfMeasure 
from grouped_products gp 
LEFT JOIN products p ON p.product_id = gp.product_id 
LEFT JOIN c_products cp ON cp.ItemID = p.product_id 
WHERE gp.group_id=123 

我想找出是否cp.IsUnitsOfMeasure爲組同時包含1和0

回答

0
SELECT gp.group_id, 
     SUM(cp.IsUnitsOfMeasure=0) AND SUM(cp.IsUnitsOfMeasure=1) AS ContainsBoth, 
FROM  grouped_products AS gp 
    LEFT JOIN products  AS p USING (product_id) 
    LEFT JOIN c_products AS cp ON cp.ItemID = p.product_id 
GROUP BY gp.group_id 

ContainsBothTRUEFALSE以指示無論每個組別是否包含 a c_productIsUnitsOfMeasure=0另一個與=1

1

試試這個:

SELECT 
    cp.ItemID, 
    SUM(cp.IsUnitsOfMeasure) AS sum, 
    COUNT(cp.IsUnitsOfMeasure) AS count, 
    from grouped_products gp 
LEFT JOIN products p ON p.product_id = gp.product_id 
LEFT JOIN c_products cp ON cp.ItemID = p.product_id 
WHERE gp.group_id=123 
  • 如果sum等於count然後所有的線都爲1
  • 如果sum是等於0,那麼所有的線都爲0
  • 在所有其他情況下
  • :你有兩個1和0的組中
+0

謝謝你,這個答案實際上對我更有用,儘管其他答案更多地與我實際要求的相關。 – charliefarley321