Измените запрос Select with, где пункт запроса, чтобы иметь только один из выбора в запросе

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'

иметь только один выбор?

Я предполагаю, что мне нужно использовать какую -то форму внутреннего соединения, просто не уверен, что 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