好的,我该如何更改此问题:

select * from quallev_qualificationlevel quallev
where quallev.quallev_qual_id in (/* */ select qual.qual_id from qual_qualification qual, qde_qualificationdescription qde
where (qual.qual_id = qde.qde_qual_id)
and qual.qual_startdate <= '2013-12-02'
and qual.qual_enddate >= '2013-12-02'
and qde.qde_namepurpose_cd_id = 7294
and qde.qde_langauge_id = 2
and qde.qde_startdate <= '2013-12-02'
and qde.qde_enddate >= '2013-12-02'
order by qual.qual_id,
        qual_code /* */)
and quallev.quallev_startdate <= '2013-12-02'
and quallev.quallev_enddate >= '2013-12-02'

只有一个选择?

我假设我需要使用某种形式的内在加入,只是不确定WT以及如何

有帮助吗?

解决方案

更换你的 in 条款,你可以做

inner join qual_qualification qual on qual.qual_id = quallev.quallev_qual_id
inner join qde_qualificationdescription qde on qual.qual_id = qde.qde_qual_id

但是 inner joinin 条款。所以你不应该再使用 select *, , 但至少 select quallev.*

如果加入检索超过1 qual_qualification 每个 quallev_qualificationlevel, ,您将获得重复的结果,因此您可能需要一个 distinct 条款。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top