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.


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;

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;
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.