2017-08-12 1 views
-3

Ich habe 2 Tabelle 1) Kategorie Tabelle & 2) Element TabelleSQL für "Kategorie" und "item" Tabelle

Kategorie Tabellenfelder sind: 1) cat_id 2) CAT_NAME Artikel Tabellenfelder sind: 1) cat_id 2) ITEM_ID 3) item_name

Kategorie Tabellendaten:

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

Artikel Tabellendaten:

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

Mein gewünschten SQL-out Put müssen wie: (Alle zeigen Null Kategorie Artikel, aber "distinct" Artikel für mehrere Kategorie“

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

Und wollen auch mögen: (Random wenn mehrere "Item" in derselben Kategorie)

|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| 

Wie ich es lösen kann? Datenbank kann "MySQL" und "SQLite" sowohl für das mobile Ende.

+1

Siehe https://meta.stackoverflow.com/questions/333952/why-should-i-provide-an-mcve-for-what-seems-to-me-to-be-a-very -simple-sql-Abfrage – Strawberry

Antwort

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; 
Verwandte Themen