SQL bergabung di beberapa kolom dalam tabel yang sama

136

Saya memiliki 2 subquery, tetapi saya mengalami kesulitan untuk menggabungkan kolom dari tabel yang sama. Saya mencoba:

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;

Jika saya hanya mengakhiri kueri dengan ON a.userid = b.sourceidkerjanya, tetapi bagaimana saya juga bisa bergabung dengan tabel ini di kolom lain juga ON a.listid = b.destinationid??

Setiap bantuan dihargai.

pengguna1899415
sumber
2
terima kasih atas jawabannya .. argh tidak punya ";" di akhir permintaan sebelumnya
user1899415

Jawaban:

201

Bergabunglah seperti ini:

ON a.userid = b.sourceid AND a.listid = b.destinationid;
Zoran Horvat
sumber
7
Tampak jelas mengingat kembali, tetapi saya ingin mencatat bahwa ATAU berfungsi juga, Anda hanya berakhir dengan BANYAK catatan.
wastubbs
68

Anda ingin bergabung dengan kondisi 1 DAN kondisi 2, jadi cukup gunakan kata kunci DAN seperti di bawah ini

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