SQL-Join für mehrere Spalten in denselben Tabellen

132

Ich habe 2 Unterabfragen, aber ich habe Probleme, Spalten aus denselben Tabellen zusammenzufügen. Ich habe es versucht:

SELECT * FROM

(SELECT userid, listid 
FROM user_views_table
WHERE date='2013-05-15' AND view_type='lists') a

JOIN

(SELECT sourceid, destinationid
FROM actions_table
WHERE date='2013-05-15' AND payloadtype='lists_user' AND actiontype='delete') b

ON a.userid = b.sourceid
ON a.listid = b.destinationid;

Wenn ich die Abfrage einfach damit beende ON a.userid = b.sourceid, funktioniert das, aber wie kann ich diese Tabellen auch in einer anderen Spalte ON a.listid = b.destinationidverknüpfen?

Jede Hilfe geschätzt.

user1899415
quelle
2
danke für die antworten .. argh hatte einfach nicht das ";" am Ende der Abfrage früher
user1899415

Antworten:

197

Mach mit:

ON a.userid = b.sourceid AND a.listid = b.destinationid;
Zoran Horvat
quelle
7
Wenn man zurückblickt, scheint es offensichtlich, aber ich wollte darauf hinweisen, dass ein OP auch funktioniert. Man hat einfach eine Menge Datensätze.
Wastubbs
65

Wenn Sie unter Bedingung 1 UND Bedingung 2 beitreten möchten, verwenden Sie einfach das UND-Schlüsselwort wie unten

ON a.userid = b.sourceid AND a.listid = b.destinationid;
Paul McLoughlin
quelle