[英]Joining up two sql tables
我有两个包含数据的表:
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 |
+-------+--------+-------+
我希望这是有道理的?
感谢您的帮助!
您可以使用简单的JOIN
查询,例如:
SELECT g.users, g.groupID, gp.postid
FROM GroupMembers g JOIN GroupPosts gp ON g.groupID = gp.groupID;
人们喜欢使用JOIN语法,您也可能喜欢它,但是我发现它与等价的“ oldschool”语法更易读:
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.users,m.groupid,p.groupid,p.postid
来自GroupMembers as m
在m.groupid = p.groupid上以p的形式加入GroupPost
在移动设备上,因此无法参考您的帖子,但我认为就是这样。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.