What is the difference between INNER JOIN and LEFT JOIN in PHP MYSQL and how does it affect query results?

INNER JOIN and LEFT JOIN are types of JOIN operations in SQL. INNER JOIN returns only the rows where there is a match in both tables being joined, while LEFT JOIN returns all rows from the left table and the matched rows from the right table. If there is no match, the result will contain NULL values for columns from the right table. Here is an example PHP code snippet that demonstrates the difference between INNER JOIN and LEFT JOIN in MySQL:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);

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

// INNER JOIN query
$sql = "SELECT orders.order_id, customers.customer_name
        FROM orders
        INNER JOIN customers ON orders.customer_id = customers.customer_id";
$result = $conn->query($sql);

echo "INNER JOIN Results:<br>";
if ($result->num_rows > 0) {
  while($row = $result->fetch_assoc()) {
    echo "Order ID: " . $row["order_id"]. " - Customer Name: " . $row["customer_name"]. "<br>";
  }
} else {
  echo "0 results";
}

// LEFT JOIN query
$sql = "SELECT orders.order_id, customers.customer_name
        FROM orders
        LEFT JOIN customers ON orders.customer_id = customers.customer_id";
$result = $conn->query($sql);

echo "<br>LEFT JOIN Results:<br>";
if ($result->num_rows > 0) {
  while($row = $result->fetch_assoc()) {
    echo "Order ID: " . $row["order_id"]. " - Customer Name: " . $row["customer_name"]. "<br>";
  }
} else {
  echo "0 results";
}

$conn->close();
?>