0

単純なレビュー Web サイト アプリケーションを構築していて、SQL クエリのヘルプが必要です。

3 つのテーブル (トピック、コメント、ユーザー) があります。3 つのテーブルすべてからデータを選択するには、SQL クエリが必要です。

「トピック」テーブルは親であり、「コメント」テーブルには子レコードが含まれます (親ごとに 0 から 100 レコードまで)。

3 番目のテーブル「Users」には、すべてのユーザーのユーザー情報が含まれています。

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

コメントなしのトピックを取得するには、コメント付きの左結合を実行する必要があります。また、トピックとユーザーとのコメントに結合して、両方の関連ユーザー情報を取得する必要があります。

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

user テーブルに 2 回参加する必要があります。

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 に答える