Cambie la consulta seleccionada con la cláusula Where Cláusula de una consulta para tener solo una selección en la consulta

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

  •  25-08-2022
  •  | 
  •  

Pregunta

Ok, entonces, ¿cómo puedo cambiar esto?

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'

solo tener una selección?

Supongo que necesito usar alguna forma de unión interior, pero no estoy seguro de WT y cómo

¿Fue útil?

Solución

Para reemplazar su in cláusula, podrías hacer

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

Pero un inner join no es lo mismo que un in cláusula. Entonces no deberías usar más select *, pero al menos select quallev.*

Y si la unión recupera más de 1 qual_qualification para cada quallev_qualificationlevel, obtendrá resultados duplicados, por lo que es posible que necesite un distinct cláusula.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top