MySQL - 基于另一个查询的查询

gar*_*eth 1 php mysql sql

我写了很多类似下面的查询示例代码的查询.我想知道是否有更高效的代码/脚本?

$query1 ="SELECT * FROM table1 WHERE date >= '$todaysdate' ";
$result1 = mysql_query($query1)
    or die ("Error in query: $query1. " . mysql_error());
if (mysql_num_rows($result1) > 0) {
    while($row1 = mysql_fetch_object($result1)) {

        echo "$row1-date";

        $query2 ="SELECT * FROM table2 WHERE table1ID >= '$row1-table1ID' ";
        $result2 = mysql_query($query2)
            or die ("Error in query: $query2. " . mysql_error());
        if (mysql_num_rows($result2) > 0) {
            while($row2 = mysql_fetch_object($result2)) {
                echo "$row->datatable2";
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Dan*_*llo 9

尝试使用SQL JOIN,如下例所示:

SELECT 
    * 
FROM 
    table1 
INNER JOIN 
    table2 ON (table2.table1ID = table1.ID)
WHERE 
    table1.date >= '2009-12-20';
Run Code Online (Sandbox Code Playgroud)

  • 同意,SQL不仅仅是"SELECT*FROM <foo> WHERE <baa>",我建议专门研究MySQL教程(而不是PHP教程的MySQL片段) (2认同)