我有3张这样的表
Users table
id | name
-------------
1 | s1
2 | s2
3 | s3
4 | s4
5 | s5
6 | s6
friends table
friendID | user_a | user_b
--------------------
1 | 1 | 2
2 | 3 | 1
3 | 4 | 2
4 | 1 | 3
groups table
id | groupid | groupname
------------------------------
1 | 1 | in01
2 | 2 | in02
3 | 3 | in03
4 | 1 | in01
我想运行此查询:在任何群组之间的大多数关系? 这是我当前的查询,但它不起作用
SELECT g.groupname, count(f.FriendId) as kol
FROM users a
left join groups g on g.id=a.id
left join friends f on f.friendid=a.id
group by kol;
我甚至不知道,这个查询有什么问题
答案 0 :(得分:1)
首先,您的架构未规范化。它违反了称为重复组的规范化规则(第一范式(1NF)。因此很难确定它意味着什么或你想要什么。
组表如何具有多个具有相同groupId和Group名称的行? (groups.id 1& 4)。显然,这个表不是一个组表。之后怎么样了?不管它是什么,它与其他表的关系是什么?