ホームページ  >  記事  >  データベース  >  MySQLとPHPでテーブル接続を使用する方法

MySQLとPHPでテーブル接続を使用する方法

王林
王林転載
2023-05-29 14:13:131089ブラウズ

テーブル接続

接続条件を使用して複数のテーブルを関連付けます。これがテーブル接続(JOIN)です。テーブル接続により複数のテーブル間のデータを取得できます

MySQLとPHPでテーブル接続を使用する方法

テーブル接続構文:

SELECT テーブル名 1. カラム名、テーブル名 2. カラム名 FROM テーブル 1、テーブル 2 WHERE 条件

いくつかの接続方法テーブル:

内部結合:結合または内部結合

自己結合:同じテーブル内の接続

外部結合:

  • 左外部結合、左結合

  • 右外部結合、右結合

  • ##完全外部結合、完全結合
  • データ (テーブル 1):

MySQLとPHPでテーブル接続を使用する方法データ (テーブル 2):

MySQLとPHPでテーブル接続を使用する方法 内部結合

内部結合では、結合された他のテーブルと一致しないすべての行を結果テーブルから削除します。(セクション)

形式:

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

UNION
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 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 サイトの他の関連記事を参照してください。

声明:
この記事はyisu.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。