我试图实现的咨询有问题:
SELECT [columns] FROM table1 LEFT/RIGHT JOIN table2 ON table1.id_user = table2.id [WHERE clause] GROUP BY column
我想要这个咨询的例子如下所示:
在table1中记录此记录:
id | id_user |用户|值
1 | 1 | name1 | 10
2 | 1 | name1 | 10
3 | 1 | name1 | 11
4 | 1 | name1 | 10
5 | 2 | name2 | 11
6 | 2 | name2 | 11
表2中的这些:
id |用户
1 | name1
2 | NAME2
我想获得给定值的每个用户存在多少记录,例如,如果我们寻找值10我想得到的值:
name1 | 3
name2 | 0
我尝试过LEFT和RIGHT JOIN但是没有用,我只是得到这个,因为我猜的唯一记录匹配WHERE子句:
name1 | 3
而不是name2的结果。
在我解决问题之前,我一直没有找到解决方案,希望有人可以帮我解决这个问题:)
抱歉英文不好。 我非常感谢您提供的任何帮助
答案 0 :(得分:0)
试试这个。
SELECT t2.user,SUM(CASE WHEN t2.id=t1.id_user THEN 1 ELSE 0 END) AS TotalRecords
FROM table2 t2
LEFT JOIN table1 t1 ON t2.id =t1.id_user
GROUP BY t2.id
HAVING t1.value=10