我想在这里显示喜欢的数据:
id_produk | jumlah_liker | id_user
1 | 5 | 1
2 | 0 | 1
审查表产品
pr_id | nama
1 | Milk
2 | Choco
评论表喜欢
id_produk | id_user
1 | 1
1 | 1
1 | 1
1 | 1
1 | 1
但是我有SQL记录
id_produk | jumlah_liker | id_user
1 | 1 | 1 //the problem here
2 | 0 | 1
SELECT liker.id_produk, COUNT(liker.id_produk) AS jumlah_like, liker.id_user
FROM produk
LEFT OUTER JOIN liker ON liker.id_produk = produk.pr_id AND liker.id_user = 1
GROUP BY produk.pr_id
最佳答案
您需要同时GROUP BY
和id_produk
列。另外,您应该在id_user
表中的ID上进行选择和汇总。从produk
进行左连接的全部目的是确保每个产品始终显示在输出中。
SELECT
p.pr_id, -- NOT liker.id_produk
COUNT(l.id_produk) AS jumlah_like,
l.id_user
FROM produk p
LEFT JOIN liker l
ON l.id_produk = p.pr_id AND l.id_user = 1
GROUP BY
p.pr_id,
l.id_user;
Demo
关于mysql - MySQL查询左联接问题以获取数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53478041/