php mysql加入3个表

use*_*585 0 mysql join

我循环通过用户页面上的反馈类型评论系统,找到最新的6个帖子.

要显示我想要的帖子,我必须从3个表中获取数据.

我认为如果它只是在一个查询中被拉出来的话,它会减少数据库密集度,但我不确定如何编写它,对JOIN和事情很糟糕.

这是我现有的代码

$sql_result = mysql_query("SELECT * FROM feedback WHERE user='1' ORDER BY date desc LIMIT 6", $db);
while($rs = mysql_fetch_array($sql_result)) {

   $sql_result2 = mysql_query("SELECT * FROM members WHERE id= '$rs[author]'", $db); 
   $rs2 = mysql_fetch_array($sql_result2);

   if ($rs2[clan] != 0) { 
      $sql_result3 = mysql_query("SELECT * FROM clans WHERE id= '$rs2[clan]' LIMIT 1", $db);
      $rs3 = mysql_fetch_array($sql_result3);

     // write comment
Run Code Online (Sandbox Code Playgroud)

有人能给我一个线索吗?

ano*_*irl 5

这应该这样做:

select * from feedback 
left join members on feedback.author = members.id 
left join clans on members.clan = clans.id
where feedback.user = 1
Run Code Online (Sandbox Code Playgroud)

left join表示如果右侧的表没有匹配的行,则返回包含所有空值的记录,因此您仍然可以从左侧的表中获取数据.