如何将左外部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;

请帮忙给我一个样本

对于第一个查询,您将有行,因为所有联接都是LEFT JOIN,所以输出中至少会有来自表jadwal的所有条目。

但在另一个查询中,您使用条件进行选择(类似于INNER JOIN),如果条件不满足,就不会有任何结果。这就是为什么您没有得到任何输出的原因。

没有符合这些条件的数据。请检查数据

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

希望这能帮助

在第一个查询中,您使用左联接(这意味着如果from表和联接表之间没有匹配,它将从from表中检索所有结果),在第二个查询中使用内部联接。

你可以看看这个;INNER JOIN";以及";外部联接";?

相关内容

  • 没有找到相关文章

最新更新