我正在使用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代码的冗余部分,还是有更好的方法来完成这个?
答案 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中使用的所有字段上是否包含所有组合索引,并且速度非常快。