【发布时间】:2021-07-07 12:06:00
【问题描述】:
我有一个查询,它为我提供了一个 productId:s 列表,然后我将其与 products 表匹配。但是我将如何调整查询以只给我有效的 productId:s (active=1)?
My query:
SELECT productId
FROM prod_rel
GROUP BY productId
HAVING SUM(carId = 12) > 0 AND SUM(objectiveId = 15) > 0 AND SUM(locationId = 11) > 0;
Table products
+----+-----------+------------+-------------+
| id | product | name | active |
+----+-----------+------------+-------------+
| 1 | 1 | Jeep| 1 |
| 2 | 1 | Tesla| 0 |
| 3 | 1 | Audi| 1 |
| 4 | 2 | Mercedes| 1 |
| 5 | 2 | Volvo | 0 |
| 6 | 2 | BMW | 0 |
+----+-----------+------------+-------------+
Table: prod_rel
+----+-----------+------------+-------------+------------+
| id | productId | carId | objectiveId | locationId |
+----+-----------+------------+-------------+------------+
| 1 | 1 | 12 | 0 | 0 |
| 2 | 1 | 0 | 15 | 0 |
| 3 | 1 | 0 | 0 | 11 |
| 4 | 2 | 11 | 0 | 0 |
| 5 | 2 | 0 | 10 | 0 |
| 6 | 2 | 0 | 0 | 14 |
+----+-----------+------------+-------------+------------+
【问题讨论】:
-
样本数据很好,但您还应该指定预期结果!
-
@jarlh,谢谢,下次会尝试更清楚结果。我正在寻找查询以生成仅显示活动产品的所有 productId:s。
标签: mysql sql join select where-clause