2016-11-16 2 views
0

Ich habe vier Tabellen.Erhalten Sie alle Zeilen aus drei verschiedenen Tabellen, die die gleiche ID enthalten

Ich muss alle Zeilen aus den drei Tabellen extrahieren; Bücher, DVDs und Spielzeuge, die die use_id enthalten. Alles, was ich von jeder dieser Zeilen brauche, ist die eindeutige ID des Buches/DVD/Spielzeug.

Mein SQL ist ein wenig rostig, aber ich denke, ich brauche eine Art von Join.

Kann jemand mir bitte eine Richtung auf meiner Frage geben?

+1

ich graben nicht Ihre Namenskonvention. warum 'use' statt' user' und 'boo' statt' book'? Schwierig zu lesen für 3-stelliges Präfix? Und den Namespace mag man auch nicht, wenn man einen Schlüssel auf eine andere Tabelle wie "boo_use_id" zeigt - das kann ganz normal nur 'user_id' sein oder die Beziehung anzeigen und sie zu 'users_user_id' machen –

Antwort

0

Gerade anzuschließen:

SELECT u.*, 
     b.boo_id, 
     d.dvd_id, 
     t.toy_id 
FROM Users u 
JOIN Books b 
ON(u.use_id = b.boo_use_id) 
JOIN DVDs d 
ON(u.use_id = d.dvd_use_id) 
JOIN Toys t 
ON(u.use_id = t.toy_use_id) 
0

denke ich, ein UNION hier am meisten Sinn macht:

SELECT boo_id, 'book' AS type 
FROM books 
WHERE boo_use_id = 1 
UNION 
SELECT dvd_id, 'dvd' 
FROM dvds 
WHERE dvd_use_id = 1 
UNION 
SELECT toy_id, 'toy' 
FROM toys 
WHERE toy_use_id = 1 
Verwandte Themen