2011-01-31 8 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テーブルは空ではありませんが、それがすべての場合、「別々の」イメージは複数のイメージではなく1つのエントリとしてグループ化されます。

質問に間違っていることがありますか?

答えて

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