0

1 つのデータベース クエリのみを使用して次のことを達成するにはどうすればよいですか?

$query =  "SELECT `email`, `name` FROM `customers`";
$result = mysqli_query($link,$customer_query);
while($row = mysqli_fetch_array($result)){ 
    echo "<p>".$row['name']."</p>";
    echo "<ul>";
        $query2 = "SELECT `sku` FROM `orders` WHERE `email` = '".$row['email']."'";
        $result2 = mysqli_query($link,$query2);
        while($row2 = mysqli_fetch_array($result2)){ 
            echo "<li>".$row2['sku']."</li>";
            echo "<li>".$row2['cost']."</li>";
        }
    echo "</ul>"
}
4

1 に答える 1

1

これにはフィールドで使用INNER JOINします。email

SELECT c.name, o.sku, o.cost FROM customers c INNER JOIN orders o ON o.email = c.email

emailパフォーマンスのために、フィールドにMySQL INDEX を追加することを忘れないでください。

ただし、これは注文のある顧客のみを選択します。すべての顧客 (注文がない顧客も含む)を選択する必要がある場合は、LEFT JOIN代わりに使用します。この場合skucost注文のないユーザーのフィールドは になりますnull

この図をヒントにしてください。ここに画像の説明を入力

于 2013-09-06T15:29:34.337 に答える