0

我在 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 代码的冗余部分的方式是,还是有更好的方法来完成这个?

4

2 回答 2

2

在 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-20T10:19:00.190 回答
1

2个查询在那里完全没问题,组合几个表的输出不是很干净的想法。

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

于 2010-10-20T10:16:33.107 回答