mysql - 将查询的 where 子句中的选择查询更改为查询中只有一个选择

标签 mysql sql select join

好吧,我该如何改变这个:

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.*

如果连接为每个 quallev_qualificationlevel 检索超过 1 个 qual_qualification,您将得到重复的结果,因此您可能需要一个 distinct 子句.

关于mysql - 将查询的 where 子句中的选择查询更改为查询中只有一个选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20353260/

相关文章:

mysql查询以根据首选成员(member)生成佣金报告

mysql - 查找数据库中多个表之间的匹配

mysql - 如何连接1433端口访问mysql数据库?

mysql - 用where条件替换sql

mysql - 尝试编写查询但不知道该怎么做

java - 如何使用 JDBC 在 SELECT 查询中使用动态表名

HTML UTF-8 不同 'de facto' -字体大小

php - 提交时增加变量以更新 mysql 查询

PHP MySQL - 将记录移动到另一个表,选择,插入,删除

mysql - SQL 存储过程 - 变量太短