クエリの句のみがクエリに1つの選択のみを持っている場合、選択クエリを変更するクエリを変更します

StackOverflow https://stackoverflow.com/questions/20353260

  •  25-08-2022
  •  | 
  •  

質問

わかりました、どうすればこれを変更できますか:

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'

選択した選択は1つしかありませんか?

私は何らかの形の内側結合を使用する必要があると思います、ただ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 join と同じではありません in 句。したがって、もう使用してはいけません select *, 、 しかし、少なくとも select quallev.*

結合が1以上を取得した場合 qual_qualification それぞれのため quallev_qualificationlevel, 、結果が複製されるので、必要になる場合があります distinct 句。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top