MySQL與PHP中的資料表連接怎麼用

王林
發布: 2023-05-29 14:13:13
轉載
1091 人瀏覽過

表連接

利用連接條件將多個表關聯起來,這就是表連接(JOIN),透過表連接可以獲取多個表之間的資料

MySQL與PHP中的資料表連接怎麼用

表格連線語法:

SELECT 表格名稱1.欄位名稱, 表格名稱2.欄位名稱FROM 表1, 表2 WHERE 條件

#表連接的幾種方式:

內連接: join 或inner join

自連接: 同一張表內的連接

外部連接:

  • 左外連接, left join

  • 右外連接, right join

  • 全外連接, full join

資料(table1):

MySQL與PHP中的資料表連接怎麼用

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
(
[name] =>楊富貴
[age] => 18
[class] => 數學課
)
Array
(
[name] => 楊美麗
[age] => 19

[class] => 語言課
)

Array

(

[name] => 楊建國

[age] => 20

[class] => 英文課

)

#左連接

包含做表的全部行(不管右表是否存在與之匹配的行), 以及右表中全部匹配的行.

格式:

#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
(
[name] =>楊富貴
[age] => 18
[class] = > 數學課
)
Array
(
[name] => 楊美麗
[age] => 19
[class] => 語言課
)
Array
(
[name] => 楊建國
[age] => 20

[class] => 英文課
)

Array

(

[name] => 楊鐵柱

[age] => 21

[class] =>

)

右邊連接

包含右表的全部行(不管左表是否存在與之匹配的行), 以及左表中全部匹配的行.

格式:

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
(
[name] =>楊富貴
[age] => 18
[class] => 數學課
)
Array
(
[name] => 楊美麗
[age] => 19
[class] => 語言課
)
Array
(
[name] => 楊建國
[age] => 20

[class] => 英文課
)

Array

(

[name] =>

[age] =>

[class] => 歷史課

)


全連線

包含左右兩個表的全部行(不管在另一個表中是否存在與之匹配的行).

格式:

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] =>楊富貴
[age] => 18
[class] => 數學課
)
Array
(
[name] => 楊美麗
[age] = > 19
[class] => 語言課
)
Array
(
[name] =>楊建國
[age] => 20
[ class] => 英語課
)
Array
(
[name] => 楊鐵柱
[age] => 21

[class] =>
)###Array###(###[name] =>###[age] =>###[class] => 歷史課###)######

以上是MySQL與PHP中的資料表連接怎麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:yisu.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板