2017-08-12 47 views
-3

我有2個表,1)範疇表& 2)項目表SQL的 「類別」 和 「項目」 表

分類表中的字段有:1)CAT_ID 2)cat_name 項目表中的字段有:1) CAT_ID 2)ITEM_ID 3)ITEM_NAME

類別表數據:

|1|Cat A| 
|2|Cat B| 
|3|Cat C| 

項目表數據:

|NULL|1|Item 1| 
|1|2|Item 2| 
|NULL|3|Item 3| 
|2|4|Item 4| 
|2|5|Item 5| 

我期望的SQL出認沽必須是這樣的:(顯示所有空類項目,但對於多類別「不同的」項目」

|NULL|1|Item 1| 
|1|2|Item 2| 
|NULL|3|Item 3| 
|2|4|Item 4| 

而且也希望像:(隨機如果多個‘在同一類別項目’ )

|NULL|1|Item 1| 
|1|2|Item 2| 
|NULL|3|Item 3| 
|2|4|Item 4| 

&

|NULL|1|Item 1| 
|1|2|Item 2| 
|NULL|3|Item 3| 
|2|5|Item 5| 

我該如何解決呢?數據庫可能是「MySQL」和「SQLite」兩者的移動端。

+1

請參閱https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very - 簡單-SQL查詢 – Strawberry

回答

0
SELECT cat_id, 
     item_id, 
     item_name, 
     MIN(random()) -- selects a random item from the group 
FROM Item 
WHERE cat_id IS NOT NULL 
GROUP BY cat_id 

UNION ALL 

SELECT NULL, 
     item_id, 
     item_name, 
     NULL 
FROM Item 
WHERE cat_id IS NULL 

ORDER BY item_id;