发布
社区首页 >问答首页 >优化MySQL查询所需的建议

优化MySQL查询所需的建议
EN

Stack Overflow用户
提问于 2010-10-20 18:06:28
回答 2查看 91关注 0票数 0

我在PHP中使用参数化查询,我有以下两个查询:

代码语言:javascript
代码运行次数:0
复制
SELECT username,question_text 
FROM questions,users 
WHERE questions.question_id = 4 AND questions.user_id = users.user_id

代码语言:javascript
代码运行次数:0
复制
SELECT username, post_text 
FROM posts,users WHERE posts.question_id = 4 
AND posts.user_id = users.user_id ORDER BY posts.post_id ASC

简而言之,这些问题在"posts“表中被讨论,并被他们的question_id引用。

我的PHP代码中有一些冗余代码,因为我不了解足够的mysql来查询数据库一次,从而从这两个查询中获得所需的结果。

我做得很好并处理PHP代码中的冗余部分,还是有更好的方法来实现这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-20 18:19:00

在where子句中使用join而不是匹配列

代码语言:javascript
代码运行次数:0
复制
SELECT username,question_text 
FROM questions INNER JOIN users on questions.user_id = users.user_id
WHERE questions.question_id = 4

代码语言:javascript
代码运行次数:0
复制
SELECT username, post_text 
FROM posts INNER JOIN users on posts.user_id = users.user_id 
WHERE posts.question_id = 4 
ORDER BY posts.post_id ASC
票数 2
EN

Stack Overflow用户

发布于 2010-10-20 18:16:33

2个查询是完全可以的,组合来自多个表的输出并不是非常干净的想法。

您只需要检查在WHERE中使用的所有字段上是否有所有组合索引,这将非常快。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3976688

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档