MariaDB - Mach mit
In früheren Diskussionen und Beispielen haben wir das Abrufen aus einer einzelnen Tabelle oder das Abrufen mehrerer Werte aus mehreren Quellen untersucht. Die meisten realen Datenoperationen sind viel komplexer und erfordern das Aggregieren, Vergleichen und Abrufen aus mehreren Tabellen.
JOINsErmöglichen das Zusammenführen von zwei oder mehr Tabellen zu einem einzelnen Objekt. Sie werden über die Anweisungen SELECT, UPDATE und DELETE verwendet.
Überprüfen Sie die allgemeine Syntax einer Anweisung mit einem JOIN wie unten gezeigt -
SELECT column
FROM table_name1
INNER JOIN table_name2
ON table_name1.column = table_name2.column;
Beachten Sie die alte Syntax für JOINS, die implizite Verknüpfungen und keine Schlüsselwörter verwendet. Es ist möglich, eine WHERE-Klausel zu verwenden, um einen Join zu erzielen. Schlüsselwörter eignen sich jedoch am besten für Lesbarkeit, Wartung und Best Practices.
JOINs gibt es in vielen Formen, z. B. als Left Join, Right Join oder Inner Join. Verschiedene Join-Typen bieten unterschiedliche Aggregationstypen basierend auf gemeinsamen Werten oder Merkmalen.
Setzen Sie einen JOIN entweder an der Eingabeaufforderung oder mit einem PHP-Skript ein.
Die Eingabeaufforderung
Verwenden Sie an der Eingabeaufforderung einfach eine Standardanweisung -
root@host# mysql -u root -p password;
Enter password:*******
mysql> use PRODUCTS;
Database changed
mysql> SELECT products.ID_number, products.Nomenclature, inventory.inventory_ct
FROM products
INNER JOIN inventory
ON products.ID_numbeer = inventory.ID_number;
+-------------+----------------+-----------------+
| ID_number | Nomenclature | Inventory Count |
+-------------+----------------+-----------------+
| 12345 | Orbitron 4000 | 150 |
+-------------+----------------+-----------------+
| 12346 | Orbitron 3000 | 200 |
+-------------+----------------+-----------------+
| 12347 | Orbitron 1000 | 0 |
+-------------+----------------+-----------------+
PHP-Skript mit JOIN
Verwenden Sie die mysql_query() Funktion zum Ausführen einer Verknüpfungsoperation -
<?php
$dbhost = 'localhost:3036';
$dbuser = 'root';
$dbpass = 'rootpassword';
$conn = mysql_connect($dbhost, $dbuser, $dbpass);
if(! $conn ) {
die('Could not connect: ' . mysql_error());
}
$sql = 'SELECT a.product_id, a.product_manufacturer, b.product_count
FROM products_tbl a, pcount_tbl b
WHERE a.product_manufacturer = b.product_manufacturer';
mysql_select_db('PRODUCTS');
$retval = mysql_query( $sql, $conn );
if(! $retval ) {
die('Could not get data: ' . mysql_error());
}
while($row = mysql_fetch_array($retval, MYSQL_ASSOC)) {
echo "Manufacturer:{$row['product_manufacturer']} <br> ".
"Count: {$row['product_count']} <br> ".
"Product ID: {$row['product_id']} <br> ".
"--------------------------------<br>";
}
echo "Fetched data successfully\n";
mysql_close($conn);
?>
Nach erfolgreichem Datenabruf wird die folgende Ausgabe angezeigt:
ID Number: 12345
Nomenclature: Orbitron 4000
Inventory Count: 150
--------------------------------------
ID Number: 12346
Nomenclature: Orbitron 3000
Inventory Count: 200
--------------------------------------
ID Number: 12347
Nomenclature: Orbitron 1000
Inventory Count: 0
--------------------------------------
mysql> Fetched data successfully