關係

2013-05-25 46 views
1

我有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

'groups '和另外兩張桌子? –

回答

1

首先,你的模式是不歸。它違反了被稱爲重複組的規範化規則(第一範式(1NF)),因此很難確定它的含義或想要什麼。

組表有多行具有相同的groupId和組名是什麼?(groups.id 1 & 4)。顯然這張表並不是一個表的組,它是什麼?不管它是什麼,它與其他表有什麼關係?