$sql = "SELECT * FROM cars WHERE COUNT(brand)='4'";
$results = mysql_query($sql);
$rows = mysql_fetch_array($results);
print_r($rows);
表车有这些列:
id brand price
0 bmw
1 corvette
2 mercedes
3 bmw
4 bmw
5 toyota
6 bmw
7 honda
8 lotus
这就是我想要做的,从表'cars'
返回每个拥有4种不同车型的品牌。在这个例子中,宝马有4个
4种不同的汽车是4个不同的行,具有相同的品牌名称。
所以我试图回应一下品牌名称,其中库存总数为4。
我希望我有道理,任何帮助都会受到赞赏。
答案 0 :(得分:6)
SELECT brand FROM cars GROUP BY brand HAVING COUNT(brand) = 4
为您编辑:
SELECT t1.brand, t2.email
FROM cars t1
LEFT JOIN users t2 ON t1.user_id = t2.user_id
GROUP BY t1.brand HAVING COUNT(t1.brand) = 4
答案 1 :(得分:3)
我认为在查询中你需要使用
SELECT * FROM cars HAVING COUNT(brand)=4;
并根据您的分组进行分组
答案 2 :(得分:1)
您希望一次对多行执行聚合函数(COUNT)。几乎任何时候你想要执行多个计数,你应该考虑GROUP BY。
$sql = "SELECT brand FROM cars GROUP BY brand HAVING COUNT(*) >= 4";
如果您在此查询中执行SELECT *
,则每个品牌(可能是ID较低的品牌)将获得1个随机行。
HAVING子句将充当每个组的WHERE。