Select*fromStudent_info;+------+---------+----- -------+------------+|id |Nom |Adresse &n"/> Select*fromStudent_info;+------+---------+----- -------+------------+|id |Nom |Adresse &n">

Maison  >  Article  >  base de données  >  Comment créer une vue MySQL en utilisant les données de plusieurs tables ?

Comment créer une vue MySQL en utilisant les données de plusieurs tables ?

王林
王林avant
2023-08-29 16:25:021287parcourir

如何使用多个表中的数据创建 MySQL 视图?

L'opérateur MySQL UNION peut combiner deux ou plusieurs ensembles de résultats, nous pouvons donc utiliser l'opérateur UNION pour créer une vue contenant les données de plusieurs tables. Pour comprendre ce concept, nous utilisons les tables de base "Student_info" et "Student_detail" avec les données suivantes -

mysql> Select * from Student_info;
+------+---------+------------+------------+
| id   | Name    | Address    | Subject    |
+------+---------+------------+------------+
| 101  | YashPal | Amritsar   | History    |
| 105  | Gaurav  | Chandigarh | Literature |
| 125  | Raman   | Shimla     | Computers  |
| 130  | Ram     | Jhansi     | Computers  |
| 132  | Shyam   | Chandigarh | Economics  |
| 133  | Mohan   | Delhi      | Computers  |
+------+---------+------------+------------+
6 rows in set (0.00 sec)

mysql> Select * from Student_detail;
+-----------+-------------+------------+
| Studentid | StudentName | address    |
+-----------+-------------+------------+
|       100 | Gaurav      | Delhi      |
|       101 | Raman       | Shimla     |
|       103 | Rahul       | Jaipur     |
|       104 | Ram         | Chandigarh |
|       105 | Mohan       | Chandigarh |
+-----------+-------------+------------+
5 rows in set (0.00 sec)

Exemple

La requête ci-dessous créera une vue en utilisant les données des deux tables ci-dessus -

mysql> Create or Replace View Info AS Select StudentName from Student_detail UNION Select Name From Student_info;
Query OK, 0 rows affected (0.10 sec)

mysql> select * from info;
+-------------+
| StudentName |
+-------------+
| Gaurav      |
| Raman       |
| Rahul       |
| Ram         |  
| Mohan       |
| YashPal     |
| Shyam       |
+-------------+
7 rows in set (0.00 sec)

Le résultat ci-dessus set Contient une combinaison de valeurs de deux colonnes. Si une valeur est dupliquée, cela élimine les valeurs dupliquées.

Nous pouvons également stocker toutes les valeurs ou répéter une valeur en utilisant UNION ALL comme indiqué dans la requête suivante -

mysql> Create or Replace View Info AS Select student name from Student_detail UNION ALL Select Name From Student_info;
Query OK, 0 rows affected (0.16 sec)

mysql> select * from info;
+-------------+
| StudentName |
+-------------+
| Gaurav      |
| Raman       |
| Rahul       |
| Ram         |
| Mohan       |
| YashPal     |
| Gaurav      |
| Raman       |
| Ram         |
| Shyam       |
| Mohan       |
+-------------+
11 rows in set (0.00 sec)

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