SQL เข้าร่วมในหลายคอลัมน์ในตารางเดียวกัน


136

ฉันมี 2 แบบสอบถามย่อย แต่ฉันมีปัญหาในการเข้าร่วมคอลัมน์ด้วยกันจากตารางเดียวกัน ฉันเหนื่อย:

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;

ถ้าฉันเพียงแค่จบแบบสอบถามกับON a.userid = b.sourceidการทำงาน แต่ฉันจะยังเข้าร่วมตารางเหล่านี้ในคอลัมน์อื่นยังON a.listid = b.destinationid??

ความช่วยเหลือใด ๆ ชื่นชม


2
ขอบคุณสำหรับคำตอบ .. argh ไม่ได้มี ";" เมื่อสิ้นสุดการสืบค้นก่อนหน้า
user1899415

คำตอบ:


201

เข้าร่วมเช่นนี้

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

7
ดูเหมือนว่าจะมองย้อนกลับไปอย่างชัดเจน แต่ฉันต้องการที่จะทราบว่าหรือทำงานได้ดีคุณเพิ่งจบลงด้วยการบันทึกจำนวนมาก
wastubbs

68

คุณต้องการที่จะเข้าร่วมในเงื่อนไข 1 และเงื่อนไข 2 ดังนั้นเพียงใช้คำหลักและด้านล่าง

ON a.userid = b.sourceid AND a.listid = b.destinationid;
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.