Aynı tablolarda birden çok sütun üzerinde SQL birleştirme


136

2 alt sorgum var, ancak aynı tablolardan sütunları birleştirirken sorun yaşıyorum. Denedim:

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;

Sorguyu basitçe bitirirsem ON a.userid = b.sourceidçalışır, ancak bu tabloları başka bir sütunda da nasıl birleştirebilirim ON a.listid = b.destinationid?

Herhangi bir yardım takdir edildi.


2
cevaplar için teşekkürler .. argh sadece ";" önceki sorgunun sonunda
user1899415

Yanıtlar:


201

Bunun gibi katılın:

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

7
Geriye dönüp baktığımızda açıkça görünüyor, ancak bir OR'nin de işe yaradığını not etmek istedim, sadece bir sürü kayıt elde edersiniz.
wastubbs

68

Koşul 1 VE koşul 2'ye katılmak istiyorsunuz, bu nedenle aşağıdaki gibi AND anahtar sözcüğünü kullanın

ON a.userid = b.sourceid AND a.listid = b.destinationid;
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.