0

我正在构建一个简单的评论网站应用程序,需要一些有关 SQL 查询的帮助。

有 3 个表(主题、评论、用户)。我需要一个 SQL 查询来从所有 3 个表中选择数据。

“主题”表是父表,“评论”表包含子记录(每个父表从零到 100 条记录。

第三个表“用户”包含所有用户的用户信息。

以下是 3 个表的字段:

Topics (topicID, strTopic, userID)
Comments (commentID, topicID, strComment, userID)
Users (userID, userName)

我试过:

SELECT * 
FROM   Topics 
  Inner Join Comments ON Topics.topicID = Comments.topicID
  Inner Join Users ON Topics.userID = Users.userID

但这不能正常工作,因为有多个主题并且用户信息未加入评论表。任何帮助,将不胜感激。

4

2 回答 2

1

您应该与 Comment 一起左加入以获取没有评论的主题,并与用户一起加入主题和评论以获取两者的相关用户信息。

SELECT * 
FROM Topics t
INNER JOIN Users tu on tu.userID = t.userID
LEFT JOIN Comments c on c.topicID = t.topicID
LEFT JOIN User cu on cu.userID = c.userID
于 2012-07-09T21:13:21.793 回答
0

您需要加入用户表两次。

SELECT *
FROM Topics
 INNER JOIN Comments ON Topics.topicID = Comments.topicID
 INNER JOIN Users AS u1 ON Topics.userID = u1.userID
 INNER JOIN Users AS u2 ON Comments.userID = u2.userID
于 2012-07-09T20:49:13.240 回答