接続条件を使用して複数のテーブルを関連付けます。これがテーブル接続(JOIN)です。テーブル接続により複数のテーブル間のデータを取得できます
テーブル接続構文:
SELECT テーブル名 1. カラム名、テーブル名 2. カラム名 FROM テーブル 1、テーブル 2 WHERE 条件
いくつかの接続方法テーブル:
内部結合:結合または内部結合
自己結合:同じテーブル内の接続
外部結合:
左外部結合、左結合
データ (テーブル 2):
内部結合
形式:
SELECT A .c1, B.c2 FROM A JOIN B ON A.c3 = B.c3例:
<?php $conn = mysqli_connect("localhost", "root","admin","study"); if ($conn) { echo "数据库链接成功\n"; } else { echo mysqli_connect_error(); } # SQL语句 $SQL = "SELECT table1.name, table1.age, table2.class FROM table1 JOIN table2 ON table1.name = table2.name"; # 执行 $result = mysqli_query($conn, $SQL); # 查看是否执行成功 if ($result) { echo "SQL 语句执行成功!\n"; }else { echo mysqli_error($conn); } # 调试输出 while ($line = mysqli_fetch_assoc($result)) { print_r($line); } # 关闭连接 mysqli_close($conn); ?>
出力結果:
データベース リンク成功SQL ステートメント正常に実行されました!Array
左 つながり
(
[名前] => 楊富貴
[年齢] => 18
[クラス] => 数学クラス
)
Array
(
[名前] => ヤン メイリ
[年齢] => 19
[クラス] => 中国語クラス
)
Array
(
[名前] => 楊建国
[年齢] => 20
[クラス] => 英語クラス
)
形式:
#SELECT A.c1, B.c2 FROM A LEFT JOIN B ON A.c3 = B.c3
出力結果:例:
<?php $conn = mysqli_connect("localhost", "root","admin","study"); if ($conn) { echo "数据库链接成功\n"; } else { echo mysqli_connect_error(); } # SQL语句 $SQL = "SELECT table1.name, table1.age, table2.class FROM table1 LEFT JOIN table2 ON table1.name = table2.name"; # 执行 $result = mysqli_query($conn, $SQL); # 查看是否执行成功 if ($result) { echo "SQL 语句执行成功!\n"; }else { echo mysqli_error($conn); } # 调试输出 while ($line = mysqli_fetch_assoc($result)) { print_r($line); } # 关闭连接 mysqli_close($conn); ?>
データベース リンクが成功しました
SQL ステートメントが正常に実行されました!Array右側のテーブルのすべての行 (左側のテーブルに一致する行があるかどうかに関係なく) と、左側のテーブルの一致するすべての行が含まれます。形式:(
[名前] => 楊富貴
[年齢] => 18
[クラス] = > 数学class
)
Array
(
[名前] => ヤン メイリ
[年齢] => 19
[クラス] => 中国語クラス
)
Array
(
[名前] => 楊建国
[年齢] => 20
[クラス] => 英語クラス
)
Array
(
[名前] => ヤン ティズー
[年齢] => 21
[クラス] =>
)
正しい接続
SELECT A .c1, B.c2 FROM A RIGHT JOIN B ON A.c3 = B.c3
出力結果:例:
<?php $conn = mysqli_connect("localhost", "root","admin","study"); if ($conn) { echo "数据库链接成功\n"; } else { echo mysqli_connect_error(); } # SQL语句 $SQL = "SELECT table1.name, table1.age, table2.class FROM table1 RIGHT JOIN table2 ON table1.name = table2.name"; # 执行 $result = mysqli_query($conn, $SQL); # 查看是否执行成功 if ($result) { echo "SQL 语句执行成功!\n"; }else { echo mysqli_error($conn); } # 调试输出 while ($line = mysqli_fetch_assoc($result)) { print_r($line); } # 关闭连接 mysqli_close($conn); ?>
データベース リンクが成功しました
SQL ステートメントが正常に実行されました!Array左と右のテーブルのすべての行が含まれます (もう一方のテーブルに一致する行があるかどうかに関係ありません)。形式:(
[名前] =>Yang Fugui
[年齢] =>18
[クラス] =>数学class
)
Array
(
[名前] => ヤン メイリ
[年齢] => 19
[クラス] => 中国語クラス
)
Array
(
[名前] =>楊建国
[年齢] =>20
[クラス] =>英語クラス
)
Array
(
[名前] =>
[年齢] =>
[クラス] => 歴史の授業
)
完全な接続
SELECT A.c1, B.c2 FROM A LEFT JOIN B ON A.c3 = B.c3
UNIONSELECT A.c1, B.c2 FROM A RIGHT JOIN B ON A.c3 = B.c3出力結果:
例:<?php $conn = mysqli_connect("localhost", "root","admin","study"); if ($conn) { echo "数据库链接成功\n"; } else { echo mysqli_connect_error(); } # SQL语句 $SQL = "SELECT table1.name, table1.age, table2.class FROM table1 LEFT JOIN table2 ON table1.name = table2.name UNION SELECT table1.name, table1.age, table2.class FROM table1 RIGHT JOIN table2 ON table1.name = table2.name"; # 执行 $result = mysqli_query($conn, $SQL); # 查看是否执行成功 if ($result) { echo "SQL 语句执行成功!\n"; }else { echo mysqli_error($conn); } # 调试输出 while ($line = mysqli_fetch_assoc($result)) { print_r($line); } # 关闭连接 mysqli_close($conn); ?>
データベースリンク成功
SQL文が正常に実行されました!Array(
[name] => 楊富貴
[年齢] => 18
[クラス] => 数学クラス
)
Array
(
[名前] => ヤン メイリ
[年齢] = > 19
[クラス] => 中国語クラス
)
Array
(
[名前] => 楊建国
[年齢] => 20
[クラス] => 英語クラス
)
Array
(
[名前] => ヤン・ティズー
[年齢] => 21
[クラス] => ;
)
Array
(
[名前] =>
[年齢] =>
[クラス] => 歴史の授業
)
以上がMySQLとPHPでテーブル接続を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。