【问题标题】:Cleaner Way To Write This Multiple SQL Statement编写这个多 SQL 语句的更简洁的方法
【发布时间】:2011-03-22 16:03:59
【问题描述】:

我正在寻找一种更简洁的方式来编写这些 sql 语句。我基本上是想从表1中提取数据并根据表2的结果对其进行排序。第二个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; 

     }
}

【问题讨论】:

    标签: sql select join merge


    【解决方案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
    

    【讨论】:

    • 谢谢,我只需要将 R.approved 更改为 M.approved。现在,因为我有重复的 id 字段名称,所以我将 SELECT * 更改为 R.id、companyName、membershipID。效果很好。
    猜你喜欢
    • 2022-01-12
    • 2023-03-08
    • 2014-06-15
    • 1970-01-01
    • 2021-12-15
    • 2014-01-26
    • 1970-01-01
    • 1970-01-01
    • 2012-09-12
    相关资源
    最近更新 更多