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.


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;

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;
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.