2017-05-25 25 views
-1

我有一个包含数据的两个表:衔接的两个SQL表

GroupMembers 
Users, GroupID 

GroupPosts 
GroupID,PostID 

我希望得到一个包含表输出

Users, GroupID, PostID 

用户可以属于多个组,每个组可以有多个帖子。所以我想拥有所有用户和每一个帖子。

所以,如果

GroupMembers: 

+-------+---------+ 
| Users | GroupID | 
+-------+---------+ 
| User1 | Group1 | 
+-------+---------+ 
| User2 | Group1 | 
+-------+---------+ 
| User2 | Group2 | 
+-------+---------+ 
| User3 | Group2 | 
+-------+---------+ 

GroupPosts 

+---------+--------+ 
| GroupID | PostID | 
+---------+--------+ 
| Group1 | Post1 | 
+---------+--------+ 
| Group1 | Post2 | 
+---------+--------+ 
| Group2 | Post1 | 
+---------+--------+ 
| Group2 | Post4 | 
+---------+--------+ 

应该返回包含

+-------+--------+-------+ 
| User | Group | Post | 
+-------+--------+-------+ 
| User1 | Group1 | Post1 | 
+-------+--------+-------+ 
| User1 | Group1 | Post2 | 
+-------+--------+-------+ 
| User2 | Group1 | Post1 | 
+-------+--------+-------+ 
| User2 | Group1 | Post2 | 
+-------+--------+-------+ 
| User2 | Group2 | Post1 | 
+-------+--------+-------+ 
| User2 | Group2 | Post4 | 
+-------+--------+-------+ 
| User3 | Group2 | Post1 | 
+-------+--------+-------+ 
| User3 | Group2 | Post4 | 
+-------+--------+-------+ 

表我希望是有道理?

感谢您的帮助!

回答

2

您可以使用一个简单JOIN查询,如:

SELECT g.users, g.groupID, gp.postid 
FROM GroupMembers g JOIN GroupPosts gp ON g.groupID = gp.groupID; 
0

人们喜欢使用JOIN语法,你可能会喜欢它,但我觉得它等于更可读的“老校友”语法:

select a.Users, a.GroupID, b.PostID 
from GroupMembers a, GroupPosts b where b.GroupID = a.GroupID; 

使用JOIN只会涉及像JOIN ON b.GroupID = a.GroupID,我相信。 :)

为m
0

选择m.users,m.groupid,p.groupid,p.postid

从GroupMembers

JOIN GroupPosts为p上m.groupid = p.groupid

在移动设备上,因此无法引用您的帖子,但我认为就是这样。