2011-03-22 39 views
0

我正在寻找一个更干净的方式来写这些SQL语句。我基本上想要从表1中提取数据并根据表2的结果对其进行排序。第二个sql语句基于第一个条件。我曾尝试加入,但没有取得任何成功。更清晰的方式来写这多个SQL语句

这就是我目前有工作:

$sql= "SELECT * FROM yt_Business_RegInfo WHERE deleted = '0' ORDER BY companyName ASC"; 

    //Execute SQL statement 
    if(!($result = mysql_query($sql))) 
    die("Error in executing query"); 

    while ($row = mysql_fetch_array($result)) { 
    $busID = $row['id']; 
    $companyName = $row["companyName"]; 
    $membershipID = $row['membershipID']; 


    $sql2= "SELECT * FROM yt_Business_Membership WHERE id = '$membershipID' AND approved = 1"; 

    //Execute SQL statement 
    if(!($result2 = mysql_query($sql2))) 
    die("Error in executing query"); 
    //Retrieve values 
    while ($row2 = mysql_fetch_array($result2)) { 

    echo $companyName; 

    } 
} 

回答

1

SQL语句可以合并成一个单一的一个具有内部联接这样

SELECT * FROM yt_Business_RegInfo R 
INNER JOIN yt_Business_Membership M 
    ON R.membershipID = M.ID AND R.approved = 1 
WHERE R.deleted = '0' 
ORDER BY R.companyName ASC 
+0

谢谢,我不得不改变R.批准给M.批准。现在,因为我有重复的id字段名称,我将SELECT *更改为R.id,companyName,membershipID。效果很好。 – Paul 2011-03-22 17:18:21

相关问题