mysql返回链接表匹配两组条件的行

标签 mysql

我需要在订单数据库中搜索包含来自不同制造商的商品组合的订单。本质上,我需要一份包含 2 件或更多商品的任何订单的列表,其中一件商品来自制造商 A,一件商品来自制造商 B。 我想我可以在 sku 列上使用“like”,因为它们的前缀是两个代表制造商的字母。作为示例,相关表格和列如下:

orders 表有一个 order_id 和一个 create_date (unix 时间戳 - 我需要过去两年的订单 - 我可以处理这部分,但如果有人觉得慷慨的话,请包含它)

order_items 表包含相关 order_id 和 order_item_id 的列。它还包括一个product_sku。 sku 看起来像 MA-??????对于制造商 A 和 MB-???对于制造商 B。

我不是一个 sql 专家,感觉它涉及到包含 count() 函数的选择中的选择,但不知道从哪里开始。如有任何帮助,我们将不胜感激。

最佳答案

实际上找到答案的速度比我想象的要快:

SELECT order_id
FROM orders AS o
WHERE
 o.order_id IN (select  DISTINCT order_id FROM order_items WHERE order_item_sku LIKE 'MA-%')
 AND
 o.order_id IN (select  DISTINCT order_id FROM order_items WHERE order_item_sku LIKE 'MB-%')

关于mysql返回链接表匹配两组条件的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43375787/

相关文章:

mysql - 通过上传db文件恢复MySQL数据库?

mysql - 如何生成月度事件?

MySql 查询 - 基于条件需要 'ORDER BY' 选项

php - mysql在更新时获取值的变化

mysql - 如何将这些结果合并到一行中

java - ReadyStatement 的安全性如何?

mysql - 主键和外键索引

php - 多个 if 和 elseif 不能正常工作

mysql - 在 coldfusion 的 mysql 中插入 mm-dd-yyyy 日期时出错

c# - MySQL 返回列名而不是它们的内容