Mysql 2个查询与带where的内部连接

Mysql 2个查询与带where的内部连接,mysql,sql,Mysql,Sql,我有两个表格:文章和评论; Comments.articleID是外键 我想查询数据库,组成一个网站,显示给定articleID的某篇文章的文章文本和所有文章的评论 我可以想出两种查询数据的方法: 使用两个单独的查询: SELECT articles.text FROM articles where id = givenArticleID SELECT comments.* FROM comments where comments.articleID = givenArticleID 使用内

我有两个表格:文章和评论; Comments.articleID是外键

我想查询数据库,组成一个网站,显示给定articleID的某篇文章的文章文本和所有文章的评论

我可以想出两种查询数据的方法:

使用两个单独的查询:

SELECT articles.text FROM articles where id = givenArticleID

SELECT comments.* FROM comments where comments.articleID = givenArticleID
使用内部联接:

 SELECT articles.text, comments.* 
 FROM articles 
 INNER JOIN comments on articles.id = comments.articleID 
 WHERE articles.id = givenArticleID
第一个选项只返回我感兴趣的数据——这很好

第二个选项返回我感兴趣的所有数据,但比需要的数据多得多。结果集中的每一行都包含article.text列,这可能是大量不必要的数据

我认为对于不需要WHERE条件从而包含不同文章的某些查询,join会更好

在上述情况下,您通常更喜欢哪种方式?
或者有更好的选择吗?

选项2可能更好,因为它只是一个客户机-服务器往返

另外,不要忘记每个查询都必须由数据库服务器解析


我建议您对这两个版本进行基准测试,看看哪个版本的性能更好。

如果您想检索相关数据或从中引用数据,请使用JOIN,如果不想,请不要使用它。在不评论这些特定查询的情况下,通常最好尽可能少地往返数据库正确标记!!!MySQLPostgres@maSTAShuFu这两个表都由articleID关联。。。他们属于一起。。。那么,在这种情况下,你不认为加入是合适的吗?问题是,你是想只显示文章还是同时显示评论?谢谢。虽然选项2保存了一次往返,但返回的结果集可能很大,因为文章文本随每行一起传递。。。不知道什么更好。。。感谢您的帮助,我们这边的任何猜测都无法取代您可以在5分钟内编写的简单基准测试。