mysql - 如果第二个表满足要求,则从多个表中选择数据

标签 mysql sql select

标题没有很好地描述它,我的问题:

我有两张表,一张用于订单,另一张用于产品。 一个订单可以有 n 个与其关联的产品。

我想选择那些所有其关联产品的状态(产品属性)大于或等于 x 的订单。 (所以我知道我订单的每件产品都已“准备就绪”,并且可以进一步处理订单)

每个订购的产品都有一个 OrderID

有什么建议吗?

e:刚开始使用 SQL,如果这是一个愚蠢的问题,请不要批评我

最佳答案

这是一个心态问题。 您必须找到问题的“双重”形式(->双重否定)。
您需要找到至少有一行未准备好的所有订单。

假设您的表格是通用的:
订单(ID,bla,bla,bla)订单行(orderID, row#, status, bla, bla) FK orderid 引用订单。
您可以使用此 stub :

Select *
from orders O
where not exists ( select * from order_line OL 
                   where ol.orderID=O.orderID  --binding with outer query
                   and status <> 'ready' 
                  )

旁注:我的查询也会生成空订单,要过滤它们,只需添加到外部查询并存在(从订单行 oe 中选择 *,其中 oe.orderid=o.orderid)

关于mysql - 如果第二个表满足要求,则从多个表中选择数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54239758/

相关文章:

php - 如何避免此 PDO 异常 : Cannot execute queries while other unbuffered queries are active

mysql - UPDATE Ranks in MySql table that has sub-categorys with one 语句

python - django 测试无法将固定装置的数据插入 mysql

sql - 使用 CTE 从上一行值更新值

python - 循环遍历 Mysql 结果

sql - 选择具有满足某些约束的多个子关系的所有行

sql - 选择自己的阵列。 PostgreSQL 9.5

mysql - 具有多个 WHERE 条件的 SELECT 语句

MySQL - 0 或 1 个字符选择查询

c# - 如何在图片框中选择并 move 矩形?