What are some best practices for structuring SQL queries to efficiently retrieve data from multiple tables in PHP applications?

When retrieving data from multiple tables in PHP applications using SQL queries, it is important to structure the queries efficiently to minimize the number of queries executed and optimize performance. One common approach is to use JOIN statements to combine data from multiple tables based on a related column. This allows you to retrieve all necessary data in a single query rather than making multiple separate queries.

<?php
// Connect to the database
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";
$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// Retrieve data from multiple tables using a JOIN query
$sql = "SELECT users.username, orders.order_id, orders.total_amount
        FROM users
        JOIN orders ON users.user_id = orders.user_id
        WHERE users.user_id = 1";

$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // Output data of each row
    while($row = $result->fetch_assoc()) {
        echo "Username: " . $row["username"]. " - Order ID: " . $row["order_id"]. " - Total Amount: " . $row["total_amount"]. "<br>";
    }
} else {
    echo "0 results";
}

$conn->close();
?>