将查询数量从2减少到1

时间:2010-07-31 22:31:10

标签: php sql mysql

是否可以使用1个查询而不是2个?或者这种方式更好? (速度)

<?
$q1 = mysql_query("SELECT name,url,id FROM gallery") or die(mysql_error());

if (mysql_num_rows($q1) > 0) {
  while ($row = mysql_fetch_array($q1)) {   
    echo 'IMAGES FROM '.$row['name'];
    $id = $row['id'];
    //second query for each gallery
    $imgq = mysql_query("SELECT img  FROM img WHERE ids=" . $id . " ") or die(mysql_error());
    while ($img = mysql_fetch_array($imgq)) {
      ?><img src="<?=$img['img'];?>"><?
    } //multiple images
  }
}

1 个答案:

答案 0 :(得分:4)

您需要加入才能将其恢复到一个查询中。

SELECT name,url,id,img
FROM gallery g
JOIN img i ON i.ids=g.id

这样做效率更高,因为它减少了您正在进行的请求和表访问次数。

这确实意味着您将使用name,url,id带回重复的行,但效果可能会很小。