2011-01-31 43 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