mysql - SQL:如果子查询中存在或不存在多个值,则返回 true/false

标签 mysql sql database

我有一个包含两列外键的表(例如 userID(int) : orderID(int)),我必须知道用户 ID 是否存在订单 2、3、4、5,在大型查询的 where 子句中。

我需要优化我的数据库

SELECT table1.myrow FROM table1, table2
WHERE table1.myrow = table2.myrow
AND 1 IN (SELECT myRoww from table2 WHERE table2.id = table1.myrow)
AND 2 IN (SELECT myRoww from table2 WHERE table2.id = table1.myrow)
AND 3 IN (SELECT myRoww from table2 WHERE table2.id = table1.myrow)

我想做这样的事情:

 AND (SELECT * from mytable) IN (SELECT myRoww from table2 WHERE table2.id = table1.myrow)

如何确定我的多值列表是否存在某个 ID?我请求的行是仅包含在具有两个外键的表中的关系。

我的关系:

relational model

需要知道 CONVOCATORIA_SECTOR 是否与 CONVOCATORIAS(id_bdns_Conv) 有 X 关系

最佳答案

您可以通过按用户 ID 和 HAVING 子句中的条件进行分组来实现:

select userid
from tablename
where orderid in (2,3,4,5)
group by userid
having count(distinct orderid) = 4

这将选择存在 orderid 2、3、4 和 5 的所有 userid

关于mysql - SQL:如果子查询中存在或不存在多个值,则返回 true/false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58980223/

相关文章:

mysql数据库结构

MySQL函数: Error #1064

mysql - Hibernate 事件监听器未捕获事件

SQL注入(inject)预防方法

java - 复杂的 SQL where 子句 - 集体选择所有但从不重叠

php - 获取 GROUP BY 中某列的平均值

MySQL CSV 文件导入日期时间

mysql - 使用存储过程将XML中的Html数据保存到sql

php - CodeIgniter 中 pconnect 选项的优点/缺点

sql - 如果 2^32 还不够怎么办?