2011-03-22 125 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

相關問題