我需要一些帮助才能获得所需的结果,在本例中为 7(产品表中匹配的行数)。
我得到的是 7 行,其计数基于 LEFT JOIN 中返回的行数。
SELECT count(p.id) as theCount
FROM products p
left join tablea a on p.id = a.productId
left join tableb b on p.id = b.productId
WHERE (a.col = 'val' or b.col = 'val')
group by p.id
如果我不按 p.id 分组,我会返回 28 行,这是来自 LEFT JOIN 的所有行。
我知道这很简单,但我想不通。
谢谢。
最佳答案
select count(distinct p.id)
,也许吧?因为你是从两个不同的表中提取数据,所以你会得到一个错误的 (p.id, a.col, b.col)
being (xxx, null, yyy)
和 (xxx, yyy, null)
关于MySQL 通过返回不需要的结果使用 COUNT、LEFT JOIN 和 GROUP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13216241/