2016-03-22 11 views
1

SQL sorgusu yapmakta sorun yaşıyorum. Ben iki tablo 'loans' ve 'loan_emilists' Ben ilk tablodan kredi id getirmesini istediğinizYalnızca tüm kayıtların eşleşmesi durumunda sonuçların birleştirilmesi nasıl olur?

loan table

loan_emitlist table

adında var yani 'krediler' loan.emilists tablo durumu tüm 1.

sahip olduğu Örneğin: -

Loan id = 1 Çünkü 2. tabloda yani 'loan_emilists' loan_id

DISTINCT (loans.id) SEÇ loans SOL loans.id = loan_emilists.loan_id WHERE loan_emilists.status = AÇIK loan_emilists artır DAN -: = 1, tüm durum değerini 1.

MySQL Query sahip 1

Ama bana hem 1 hem de 2 kredi veriyor.

+0

bana beklenen çıkışı verebilir misiniz? – Sadikhasan

cevap

2

Sen kullanabilirsiniz() var:

SELECT s.id FROM loans s 
WHERE NOT EXISTS(select 1 from loan_emilists t 
       where s.id = t.loan_id 
        and t.status = 0) 

Bu, birleştirme gerekmez eğer, kredilerde her kimliği için loan_emilists bir satır her zaman vardır durumda çalışmak ve sonra (değil var kullanacak):

SELECT DISTINCT s.id FROM loans s 
INNER JOIN loan_emilists s1 
ON(s1.loan_id = s.id and s1.status = 1) 
WHERE NOT EXISTS(select 1 from loan_emilists t 
       where s.id = t.loan_id 
        and t.status = 0) 
Ayrıca sol ile yapılabilir

katılmak:

SELECT DISTINCT s.id FROM loans s 
INNER JOIN loan_emilists s1 
ON(s1.loan_id = s.id and s1.status = 1) 
LEFT JOIN loan_emilists t 
ON(t.loan_id = s.id AND t.status = 0) 
WHERE t.loan_id is null 
+0

Harika .. teşekkürler :) – Sonia

İlgili konular