我有一个数据库,我试图将类似的列值组合在一起,并将NULL值显示为单独的条目。
目前我有以下内容:
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 :(得分: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