优化MySQL查询所需的建议

时间:2010-10-20 10:06:28

标签: php mysql parameterized-query

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

SELECT username,question_text 
FROM questions,users 
WHERE questions.question_id = 4 AND questions.user_id = users.user_id

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

简而言之,问题正在“帖子”表中讨论,并且正在被他们的question_id引用。

我的PHP代码中有一些冗余代码,因为我不知道有多少mysql来查询数据库一次,以便从这两个查询中得到我需要的结果。

我正在做的很好,处理我的PHP代码的冗余部分,还是有更好的方法来完成这个?

2 个答案:

答案 0 :(得分:2)

使用join而不是匹配where子句

中的列
SELECT username,question_text 
FROM questions INNER JOIN users on questions.user_id = users.user_id
WHERE questions.question_id = 4

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

答案 1 :(得分:1)

2个查询完全没问题,将几个表的输出组合起来并不是很干净。

您只需要检查在WHERE中使用的所有字段上是否包含所有组合索引,并且速度非常快。