我想在这里显示喜欢的数据:

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 BYid_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/

10-14 14:41
查看更多