我正在尝试使用PHP和MYSQL实现带有注释的推文类型的提要,即
Tweet1
- Comment1 about Tweet1
- Comment2 about Tweet1
Tweet2
- Comment1 about Tweet2
- Comment2 about Tweet2
- Comment3 about Tweet2
Tweet3
- Comment1 about Tweet3
我成功地通过每条推文下面的相关评论来圈出“推文”。不过我的问题是它正在为我的特定推文的每一条评论循环出我的“推文”,即
tweet 1
-comment 1 about tweet1
tweet 1
-comment 1 about tweet 1
-comment 2 about tweet 1 (Tweet 1 has 2 comments so loops out tweet 1 two times)
tweet 2
-comment 1 about tweet 2
tweet 2
-comment 1 about tweet 2
-comment 2 about tweet 2
tweet 2
-comment 1 about tweet 2
-comment 2 about tweet 2
-comment 3 about tweet 2 (Tweet 2 has 3 comments so loops out tweet 2 three times)
我认为问题在于我的连接mysql查询,因为我是使用连接的新手
"SELECT tweets.accountno, tweets.id,tweets.tweet,tweets.createdat,tweets.userid,users.name,users.avatar,users.biog,comments.comment FROM tweets INNER JOIN users ON tweets.userid = users.id JOIN comments ON tweets.id = comments.tweetid WHERE tweets.accountno ='123456' ORDER by tweets.ID DESC LIMIT 20"
任何想法?非常感谢
答案 0 :(得分:0)
添加GROUP BY tweets.id
,您应该没问题。
以下是我编写SQL语句的方法,为简单起见,我删除了显式的JOIN语句,我使用的是隐式语句
SELECT
tweets.accountno,
tweets.id,
tweets.tweet,
tweets.createdat,
tweets.userid,
users.name,
users.avatar,
users.biog,
comments.comment
FROM
tweets, users, comments
WHERE
tweets.userid = users.id
AND
tweets.id = comments.tweetid
AND
tweets.accountno ='123456'
GROUP BY
tweets.id
ORDER BY
tweets.id
DESC
LIMIT
20