我有两张桌子。表一是products_cat_arabic
,表二是products_arabic
。
我需要从cat
获取每个products_cat_arabic
的名称,并从另一个表中获取相关cat_id
的数字。
这是我的问题:
<?php
$getCats = $db->query(
'SELECT c.*, COUNT(*) as num_items
FROM products_cat_arabic c
JOIN products_arabic q ON q.id = c.id
GROUP BY c.id'
);
while ($gCat = mysqli_fetch_array($getCats)) {
?>
<li class="col-xs-12 col-md-4 col-lg-3"><a href="#"><?php print $gCat['cat_name']; ?>
</a><span
title="products number"><?php print $gCat['num_items']; ?></span></li>
<?php
}
?>
得到每只猫的名字,但产品的数量是错误的。
编辑:
SELECT c.cat_name, COUNT(*) as num_items
FROM products_cat_arabic c
JOIN products_arabic q ON q.cat = c.id
GROUP BY c.id
计数正确,但我有3个类别只能看到2,因为最后一个没有任何产品。
答案 0 :(得分:0)
SELECT c.cat_name,
t.nb as num_items
FROM products_cat_arabic c
INNER JOIN
(SELECT COUNT(*) as nb, products_arabic.cat
FROM products_arabic
GROUP BY products_arabic.cat) t ON t.cat = c.id
GROUP BY c.cat_name
答案 1 :(得分:0)
试试这个:
SELECT c.cat_name, COUNT(q.cat) as num_items FROM products_arabic q
LEFT JOIN products_cat_arabic c ON q.cat = c.id
GROUP BY q.cat
我不确定,但我猜q.cat
与c.cat_name
有关,而与c.id
无关。无论如何,我真的不知道你的桌子,但如果它错了,你可以改变加入q.cat = c.id
。