2011-01-31 59 views
0

我有一個數據庫,我試圖將相似的列值組合在一起,並將NULL值顯示爲單獨的條目。MySQL和UUID問題

目前,我有以下幾點:

SELECT i.*, IFNULL(iset.set_id, UUID()) AS the_set FROM img_ref i 
LEFT JOIN image_set iset ON iset.img_id = i.id 
GROUP BY the_set 

這個工作,只要是在image_set表條目。如果該表中沒有條目,則只需將所有NULL值組合在一起。如果我刪除'group by'語句,我會得到具有唯一標識符的各行,每種情況都不相同。

image_set表不可能是空的,但如果它是所有'獨立'圖像將被組合在一起作爲一個條目而不是多個。

是否有什麼,我在查詢中做錯了?

回答

0

你必須使用衍生的UUID

SELECT * 
FROM (
    SELECT i.*, IFNULL(iset.set_id, UUID()) AS the_set FROM img_ref i 
    LEFT JOIN image_set iset ON iset.img_id = i.id 
) SQ 
GROUP BY the_set 
+0

我需要的前第一子查詢吧!爲外部查詢添加了一個計數,以便我也可以計算組的行數。謝謝! – Dan 2011-01-31 23:23:15