Mysql 同时获取新闻和评论

Mysql 同时获取新闻和评论,mysql,sql,Mysql,Sql,我有两张桌子 新闻 news_id| header| text 新闻评论 comment|u id | comment | date | fk|u news|id 目前我只是把新闻拉出来。然而,我也想拉评论,但我不太确定我是否可以做一个单一的查询,或者我是否应该先拉新闻,然后再拉评论 哪种方法(如果两者都可能)更好?使用内部连接 SELECT a.*, b.* FROM news a INNER JOIN news_comments b ON a.

我有两张桌子

新闻

news_id| header| text

新闻评论

comment|u id | comment | date | fk|u news|id

目前我只是把新闻拉出来。然而,我也想拉评论,但我不太确定我是否可以做一个单一的查询,或者我是否应该先拉新闻,然后再拉评论


哪种方法(如果两者都可能)更好?

使用
内部连接

SELECT  a.*, b.*
FROM    news a
        INNER JOIN news_comments b
            ON a.news_ID = b.fk_news_id
ORDER   BY a.news_ID, b.comment_ID
要进一步了解加入的更多信息,请访问以下链接:

上面的语句将只返回至少有一条注释的
新闻
,如果您想返回所有没有注释的新闻,请使用
LEFT JOIN

SELECT  a.*, b.*
FROM    news a
        LEFT JOIN news_comments b
            ON a.news_ID = b.fk_news_id
ORDER   BY a.news_ID, b.comment_ID

我不知道你到底是不是这么想的

SELECT 'N' AS type, news_id, header, text, NULL AS date
FROM news
UNION
SELECT 'C' AS type, fk_news_id AS news_id, NULL AS header, comment AS text, date
FROM comments
ORDER BY news_id, type desc

这将为您提供一个结果集,但在从结果

检索注释数据时,您必须考虑不同的列名。为什么不使用内部联接?这样做对每个评论产生新闻条目。如果对新闻项有3个评论,该项将在结果中从数据库中提取3次。可以接受包含新闻查询和评论查询联合的更广泛的表吗?这样做会为每个评论生成一个新闻项。如果一个新闻项上有3条评论,则该项将在结果中从数据库中提取3次。是,您希望如何显示您的评论?或者为什么不在应用程序级别对其进行格式化?我可以这样做,但这真的比在新闻被提取后单独提取评论更有效吗?您能给出您所说内容的示例输出吗?我想不出使用查询的另一种方法。我能想到的另一种方法是查询新闻和评论:-)对于少量类似的专栏来说,这似乎相当实用。您可能会考虑<代码>联合所有,因为您知道所有列都已经不同了。