Maison  >  Article  >  base de données  >  Comment utiliser la connexion de table dans MySQL et PHP

Comment utiliser la connexion de table dans MySQL et PHP

王林
王林avant
2023-05-29 14:13:131052parcourir

Connexion de table

Utilisez les conditions de connexion pour associer plusieurs tables. Il s'agit d'une connexion de table (JOIN). Les données entre plusieurs tables peuvent être obtenues via la connexion de table

Comment utiliser la connexion de table dans MySQL et PHP

Syntaxe de connexion de table :

SELECT nom de la table 1. Nom de la colonne. , nom de la table 2. Nom de la colonne FROM Table 1, Table 2 WHERE condition

Plusieurs façons de joindre des tables :

Jointure interne : jointure ou jointure interne

Auto-jointure : jointure au sein de la même table

Jointure externe :

  • jointure externe gauche, jointure gauche

  • jointure externe droite, jointure droite

  • jointure externe complète, jointure complète

data (table1):

Comment utiliser la connexion de table dans MySQL et PHP

data( table2):

Comment utiliser la connexion de table dans MySQL et PHP

Jointure interne

La jointure interne consiste à supprimer toutes les lignes de la table de résultats qui ne correspondent pas aux autres tables jointes (Intersection)

Format :

SELECT A.c1, B.c2 FROM A JOIN B ON A. .c3 = B.c3

Exemple :

<?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);

?>

Résultat de sortie :

Lien de base de données réussi
Instruction SQL exécutée avec succès !
Array
(
[nom] => Yang Fugui
[âge] => 18
[classe] => cours de mathématiques
)
Array
(
[nom] => Yang Meili
[âge] => 19
[classe] => cours de chinois
)
Array
(
[nom ] => Yang Jianguo
[age] => 20
[class] => Cours d'anglais
)

Jointure gauche

contient toutes les lignes du tableau (que le tableau de droite existe ou non et les lignes correspondantes ), et toutes les lignes correspondantes dans le tableau de droite

Format :

SELECT A.c1, B.c2 FROM A LEFT JOIN B ON A.c3 = B.c3

Exemple :

<?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);

?>

Résultat de sortie :

Lien de base de données réussi
Instruction SQL exécutée avec succès !
Array
(
[nom] => Yang Fugui
[âge] => 18
[class] => Cours de mathématiques
)
Array
(
[ nom] => Yang Meili
[âge] => 19
[classe] => Cours de chinois
)
Array
(
[nom] => Yang Jianguo
[âge] => 20
[classe ] => cours d'anglais
)
Array
(
[nom] => Yang Tiezhu
[âge] => 21
[classe] =>
)

rejoindre à droite

contient la bonne table Tous lignes (qu'il y ait ou non des lignes correspondantes dans le tableau de gauche) et toutes les lignes correspondantes dans le tableau de gauche

Format :

SELECT A.c1, B.c2 FROM A RIGHT JOIN B ON A.c3 = B. .c3

Exemple :

<?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);

?>

Résultat de sortie :

Lien de base de données réussi
Instruction SQL exécutée avec succès !
Array
(
[nom] => Yang Fugui
[âge] => 18
[classe] => cours de mathématiques
)
Array
(
[nom] => Yang Meili
[âge] => 19
[classe] => cours de chinois
)
Array
(
[nom] => ; Yang Jianguo
[âge] => 20
[classe] => cours d'anglais
)
Array
(
[nom] =>
[âge] =>
[classe] => cours d'histoire
)

Jointure complète

Contient toutes les lignes des tables de gauche et de droite (qu'il y ait ou non des lignes correspondantes dans l'autre table).

Format :

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

Exemple :

<?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);

?>

Résultat de sortie :

Lien de base de données réussi
Instruction SQL exécutée avec succès !
Array
(
[nom] => Yang Fugui
[age] => 18
[class] => Cours de mathématiques
)
Array
(
[nom] => Yang Beautiful
[âge] => 19
[classe] => cours de chinois
)
Array
(
[nom] => Yang Jianguo
[âge] => 20
[classe] => cours d'anglais
)
Array
(
[nom] => Yang Tiezhu
[âge] => 21
[classe] =>
)
Array
(
[nom] =>
[âge] =>
[cours] => Cours d'histoire
)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer