仅提供具有特定阶段状态的产品的查询
Query which gives products with only specific stages status
我有一个这样的表结构:
产品
- Id_products
- 已接受
PRODUCTS_STAGES
- Id_products_stages
- 姓名
PRODUCTS_STAGES
- Id_products_stages
- 姓名
PRODUCTS_STATUSES
- Id_products_状态
- 姓名
- 颜色
PRODUCTS_STAGES_SET
- Id_products_stages_set
- Id_products (fk)
- Id_products_stages (fk)
PRODUCTS_STATUSES_SET
- Id_products_statuses_set
- Id_products_statuses (fk)
- Id_products_stages_set (fk)
在PRODUCTS_STATUSES中有4种状态(Id-name):
- 1 - 未开始
- 2 - 开始
- 3 - 未完成
- 4 - 完成
PRODUCTS_STAGES 有 6 个阶段。
我有这样的查询:
SELECT p.Id_products FROM PRODUCTS AS p
INNER JOIN (SELECT pss.Id_products FROM PRODUCTS_STAGES_SET AS pss
INNER JOIN PRODUCTS_STATUSES_SET AS pss2 ON pss.Id_products_stages_set = pss2.Id_products_stages_set
WHERE pss2.Id_products_statuses IN (1,2,3)
GROUP BY pss.Id_products) ps
ON p.Id_products = ps.Id_products
此查询为我提供了产品,其中 至少有一个 阶段 NOT 已完成
现在我想要一个查询,该查询仅提供具有特定阶段状态的产品。例如,我想要具有 stage2=Started
的产品
SELECT p.Id_products FROM PRODUCTS AS p
INNER JOIN (SELECT pss.Id_products FROM PRODUCTS_STAGES_SET AS pss
INNER JOIN PRODUCTS_STATUSES_SET AS pss2 ON pss.Id_products_stages_set = pss2.Id_products_stages_set
WHERE pss2.Id_products_statuses = 2
GROUP BY pss.Id_products) ps
ON p.Id_products = ps.Id_products
我有一个这样的表结构:
产品
- Id_products
- 已接受
PRODUCTS_STAGES
- Id_products_stages
- 姓名
PRODUCTS_STAGES
- Id_products_stages
- 姓名
PRODUCTS_STATUSES
- Id_products_状态
- 姓名
- 颜色
PRODUCTS_STAGES_SET
- Id_products_stages_set
- Id_products (fk)
- Id_products_stages (fk)
PRODUCTS_STATUSES_SET
- Id_products_statuses_set
- Id_products_statuses (fk)
- Id_products_stages_set (fk)
在PRODUCTS_STATUSES中有4种状态(Id-name):
- 1 - 未开始
- 2 - 开始
- 3 - 未完成
- 4 - 完成
PRODUCTS_STAGES 有 6 个阶段。
我有这样的查询:
SELECT p.Id_products FROM PRODUCTS AS p
INNER JOIN (SELECT pss.Id_products FROM PRODUCTS_STAGES_SET AS pss
INNER JOIN PRODUCTS_STATUSES_SET AS pss2 ON pss.Id_products_stages_set = pss2.Id_products_stages_set
WHERE pss2.Id_products_statuses IN (1,2,3)
GROUP BY pss.Id_products) ps
ON p.Id_products = ps.Id_products
此查询为我提供了产品,其中 至少有一个 阶段 NOT 已完成
现在我想要一个查询,该查询仅提供具有特定阶段状态的产品。例如,我想要具有 stage2=Started
的产品SELECT p.Id_products FROM PRODUCTS AS p
INNER JOIN (SELECT pss.Id_products FROM PRODUCTS_STAGES_SET AS pss
INNER JOIN PRODUCTS_STATUSES_SET AS pss2 ON pss.Id_products_stages_set = pss2.Id_products_stages_set
WHERE pss2.Id_products_statuses = 2
GROUP BY pss.Id_products) ps
ON p.Id_products = ps.Id_products