관계

2013-05-25 4 views
1

내가 가지고 내가이 쿼리를 실행하려면이관계

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 

추천 테이블 : 그룹 대부분의 관계에 어떤 사이? 이 내 현재 쿼리이지만,이 쿼리 모두의

+0

그룹 간의 관계는 무엇입니까? '그리고 다른 두 테이블 은요? –

답변

1

첫째로

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; 

심지어 아무 생각이 없다, 어떤 문제를 작동하지 않습니다, 당신의 스키마는 정규화되지 않습니다. 반복되는 그룹 (First Normal Form (1NF))이라는 정규화 규칙을 위반하기 때문에 어떤 의미인지 또는 원하는 것을 결정하기가 어렵습니다.

그룹 테이블에 동일한 groupId 및 그룹 이름? (groups.id 1 & 4) 분명히이 테이블은 그룹 테이블이 아닙니다. 그게 뭐죠? 뭐든간에, 다른 테이블과의 관계는 무엇입니까?