繁体   English   中英

连接两个SQL表

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM