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