2015-11-03 122 views
0

如何將這個左外連接查詢轉換爲子集查詢如何轉換LEFT OUTER JOIN查詢到子集查詢

select 
j.*, concat(d.Name, ', ', d.Gelar) as DSN, 
prg.Nama_Indonesia as PRG, 
kl.Kelas as kls, 
kl.Sesi as ssi 
from  
jadwal j left outer join 
dosen d on j.IDDosen=d.ID left outer join 
kelas kl on j.Kelas=kl.ID left outer join 
program prg on j.Program=prg.Kode left outer join 
jabatanorganisasi jo on d.JabatanOrganisasi=jo.Kode left outer join 
tahun t on j.tahun=t.id 
order by 
d.Name, prg.Nama_Indonesia, kl.Sesi, kl.Kelas; 

請幫 給我axample

回答

1

你的將是一個具有行第一查詢,因爲所有連接都是LEFT JOIN,所以至少從表jadwal的所有條目都會出現在輸出中。

但在另一個查詢中,您正在使用條件進行選擇(類似於INNER JOIN),如果條件不滿足則不會是任何結果集。這就是爲什麼您沒有獲得任何輸出。

有這些conditions.Please檢查數據

where 
    j.IDDosen=d.ID and 
    j.kelas=kl.ID and 
    j.program=prg.kode and 
    j.tahun=t.id AND 
    d.JabatanOrganisasi=jo.kode 

希望這有助於

0

在第一個查詢的數據,使用的是左連接(這意味着如果有一個從表之間的不匹配它將檢索來自表的所有結果),並在第二個查詢中使用內部聯接。

你可以看看這個What is the difference between "INNER JOIN" and "OUTER JOIN"?

+0

謝謝你。 如何將左外連接查詢轉換爲子集查詢 – nahrun