Mysql 获取一个表中的行数,其中另一个表中至少有一个相关项与条件匹配

Mysql 获取一个表中的行数,其中另一个表中至少有一个相关项与条件匹配,mysql,Mysql,我有“产品”表和相关的“变体”表,一个产品可以有一个或多个变体。”“变体”表有“状态”列,其值可以是0或1。我想获得至少有一个状态1变化的产品(COUNT())的数量。如何进行这样的查询? [编辑] 好的,我想如果我简化这个问题,我就不需要表结构了,但是,现在我们开始(只需要与问题相关的列和一些模拟数据): 它实际上是3个链接表: 表1:“产品” 身份证件 名称 1. T恤 2. 鞋 3. 短裤 联接两个表并应用状态列上的where筛选器 select count(*) as cnt from

我有“产品”表和相关的“变体”表,一个产品可以有一个或多个变体。”“变体”表有“状态”列,其值可以是0或1。我想获得至少有一个状态1变化的产品(COUNT())的数量。如何进行这样的查询? [编辑] 好的,我想如果我简化这个问题,我就不需要表结构了,但是,现在我们开始(只需要与问题相关的列和一些模拟数据):

它实际上是3个链接表: 表1:“产品”

身份证件 名称 1. T恤 2. 鞋 3. 短裤
联接两个表并应用状态列上的where筛选器

select count(*) as cnt
from
products p
join variations v
on p.product_id = v.product_id
where status = 1

您只需要
SUM
所有数量
groupby
products.id和条件为stock.status等于1

SELECT id, name, SUM(quantity) AS total_quantity
FROM Products pr
LEFT JOIN Variations va ON pr.id = va.product_id
LEFT JOIN Stock st ON st.variation_id = va.id
WHERE st.status = 1
GROUP BY pr.id

请添加表结构和示例数据。这是您的问题的最低要求。欢迎使用堆栈溢出。请学习如何使用堆栈溢出,并阅读如何提高问题的质量。然后检查,看看你可以问什么问题。另请参阅SQL相关问题。这是一种解决方法,因为我需要至少有一种状态为1的产品计数,而不是数量计数-但我将选择部分修改为“选择计数(pr.id)作为产品计数”,然后获取查询返回的行数。为了让我走上正轨,我接受了这个答案,谢谢。