我在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
简而言之,这些问题在"posts“表中被讨论,并被他们的question_id引用。
我的PHP代码中有一些冗余代码,因为我不了解足够的mysql来查询数据库一次,从而从这两个查询中获得所需的结果。
我做得很好并处理PHP代码中的冗余部分,还是有更好的方法来实现这一点?
发布于 2010-10-20 18:19:00
在where子句中使用join而不是匹配列
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
发布于 2010-10-20 18:16:33
2个查询是完全可以的,组合来自多个表的输出并不是非常干净的想法。
您只需要检查在WHERE中使用的所有字段上是否有所有组合索引,这将非常快。
https://stackoverflow.com/questions/3976688
复制相似问题