MySQL-根据子记录上冲突的WHERE子句返回父记录

我是一个具有以下表格的数据库:

订单,行,供应商

线表对订单和线表具有FK:

order_id,供应商ID

我正在尝试编写一个查询,该查询将返回订单记录的计数,该订单记录中至少有一个来自某个供应商的行,而没有任何其他供应商的行。

因此,仅包含1条生产线但来自给定供应商的生产线的订单将被计算在内。

另一方面,给定供应商的100行订单,而其他任何供应商的订单都不会被计入。

我可以很容易地计算至少一条生产线的订单,但我坚持排除其他供应商生产的订单。

SELECT
COUNT(DISTINCT(orders.id)) AS count
FROM orders
INNER JOIN lines
ON lines.order_id = orders.id
WHERE
lines.supplier_id = 1

有没有一种简单的方法(最好没有子查询,因为我在这里已经是更大的查询的一部分了)?

任何建议表示赞赏。

谢谢

马克·B

粗略的咖啡前猜测:

SELECT orders.id, SUM(lines.supplier_id = 1) AS wanted,
    SUM(lines.supplier_id <> 1) AS unwanted
FROM orders
INNER JOIN lines lines.order_id = orders.id
GROUP BY orders.id
HAVING unwanted = 0 AND wanted > 0

基本上:抓住所有订单,并使用方便的mysql技巧,上面的SUM会获取供应商ID比较的布尔结果,并将它们自动转换为integer10使用此“计数”可以找出哪些订单包含所需的供应商,对于其他任何供应商,其“总和”为0。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

MySQL-根据子记录上冲突的WHERE子句返回父记录

来自分类Dev

为什么在使用WHERE子句时,MySQL的LEFT JOIN返回“ NULL”记录?

来自分类Dev

MySQL WHERE IN仅返回1条记录

来自分类Dev

MySQL子记录

来自分类Dev

MYSQL:仅根据日期返回每个组的最新记录

来自分类Dev

MySQL查找在所有子记录中都找到给定值的父记录

来自分类Dev

MYSQL查询中的where子句冲突

来自分类Dev

MySQL:如何使Haveing子句仅按Where子句中的记录过滤?

来自分类Dev

查询以获取带有子记录的父记录,然后是mysql中的下一个父子记录

来自分类Dev

TCPDF在mysql的选定记录上产生空白页

来自分类Dev

MySQL在多个记录上联接两个表

来自分类Dev

还原所有记录,包括与MySQL IN子句重复的记录

来自分类Dev

MySQL-使用LEFT OUTER JOIN和WHERE子句选择记录

来自分类Dev

MySQL-使用LEFT OUTER JOIN和WHERE子句选择记录

来自分类Dev

MySQL:`Where` 子句获取某些字母表之间的所有记录

来自分类Dev

MYSQL 和 Node.js 使用 where 子句插入多条记录

来自分类Dev

根据MySQL中的先前记录更新时间

来自分类Dev

在mysql中根据条件连接更新记录

来自分类Dev

MySql:如何根据当前周选择记录?

来自分类Dev

MySQL优化使用WHERE子句的子查询?

来自分类Dev

mysql 子查询 COUNT 与 WHERE 子句混淆

来自分类Dev

Mysql:如果更新了父级状态,则更改所有子级记录的状态

来自分类Dev

Mysql:如果更新了父级状态,则更改所有子级记录的状态

来自分类Dev

PHP / MySQL where子句返回空值

来自分类Dev

MySQL Where子句不返回任何结果

来自分类Dev

Mysql-用每条记录上的不同值更新多条记录

来自分类Dev

MYSQL在表1更新记录上的表2中插入新记录

来自分类Dev

从表mysql中选择子记录

来自分类Dev

查询不返回重复记录-MySQL

Related 相关文章

  1. 1

    MySQL-根据子记录上冲突的WHERE子句返回父记录

  2. 2

    为什么在使用WHERE子句时,MySQL的LEFT JOIN返回“ NULL”记录?

  3. 3

    MySQL WHERE IN仅返回1条记录

  4. 4

    MySQL子记录

  5. 5

    MYSQL:仅根据日期返回每个组的最新记录

  6. 6

    MySQL查找在所有子记录中都找到给定值的父记录

  7. 7

    MYSQL查询中的where子句冲突

  8. 8

    MySQL:如何使Haveing子句仅按Where子句中的记录过滤?

  9. 9

    查询以获取带有子记录的父记录,然后是mysql中的下一个父子记录

  10. 10

    TCPDF在mysql的选定记录上产生空白页

  11. 11

    MySQL在多个记录上联接两个表

  12. 12

    还原所有记录,包括与MySQL IN子句重复的记录

  13. 13

    MySQL-使用LEFT OUTER JOIN和WHERE子句选择记录

  14. 14

    MySQL-使用LEFT OUTER JOIN和WHERE子句选择记录

  15. 15

    MySQL:`Where` 子句获取某些字母表之间的所有记录

  16. 16

    MYSQL 和 Node.js 使用 where 子句插入多条记录

  17. 17

    根据MySQL中的先前记录更新时间

  18. 18

    在mysql中根据条件连接更新记录

  19. 19

    MySql:如何根据当前周选择记录?

  20. 20

    MySQL优化使用WHERE子句的子查询?

  21. 21

    mysql 子查询 COUNT 与 WHERE 子句混淆

  22. 22

    Mysql:如果更新了父级状态,则更改所有子级记录的状态

  23. 23

    Mysql:如果更新了父级状态,则更改所有子级记录的状态

  24. 24

    PHP / MySQL where子句返回空值

  25. 25

    MySQL Where子句不返回任何结果

  26. 26

    Mysql-用每条记录上的不同值更新多条记录

  27. 27

    MYSQL在表1更新记录上的表2中插入新记录

  28. 28

    从表mysql中选择子记录

  29. 29

    查询不返回重复记录-MySQL

热门标签

归档