【发布时间】:2012-07-09 07:28:27
【问题描述】:
我正在构建一个简单的评论网站应用程序,需要一些有关 SQL 查询的帮助。
有 3 个表格(主题、评论、用户)。我需要一个 SQL 查询来从所有 3 个表中选择数据。
“主题”表是父表,“评论”表包含子记录(每个父表的记录从 0 到 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
但这不能正常工作,因为有多个主题并且用户信息未加入评论表。任何帮助将不胜感激。
【问题讨论】:
-
您希望结果包含没有 cmets 的主题吗?
-
你想要完成什么?您想查找用户的所有活动吗?所有关于特定主题的 cmets,包括用户名?此外,使用变量类型为列名添加前缀/后缀通常不是一个好主意(因此,不要使用
str...)。出于多种原因,您还可以从将时间戳附加到表中受益。 -
结果应该是所有特定用户主题的列表以及主题下方的每个评论(如果有的话)。为了简洁起见,我的示例中的 DB 模式进行了简化,主题和 cmets 以及其他字段都有时间戳。我不确定如何通过一个记录集进行迭代。
标签: sql sql-server inner-join outer-join