Exclusivité A + public AB
Exclusivité B + public AB
Public AB
Exclusivité A
B's Unique
A's unique+B's unique +AB's public
A's unique+B's unique
Construire une table
Table de département
DROP TABLE IF EXISTS `dept`; CREATE TABLE `dept` ( `dept_id` int(11) NOT NULL AUTO_INCREMENT, `dept_name` varchar(30) DEFAULT NULL, `dept_number` int(11) DEFAULT NULL, PRIMARY KEY (`dept_id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; INSERT INTO `dept` VALUES ('1', 'AA', '100'); INSERT INTO `dept` VALUES ('2', 'BB', '200'); INSERT INTO `dept` VALUES ('3', 'CC', '300'); INSERT INTO `dept` VALUES ('4', 'DD', '400'); INSERT INTO `dept` VALUES ('5', 'HH', '500');
Table des employés
DROP TABLE IF EXISTS `emp`; CREATE TABLE `emp` ( `emp_id` int(11) NOT NULL AUTO_INCREMENT, `emp_name` varchar(30) DEFAULT NULL, `emp_age` int(11) DEFAULT NULL, `dept_id` int(11) NOT NULL, PRIMARY KEY (`emp_id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8; INSERT INTO `emp` VALUES('1', 'zhangsan', '20', '1'); INSERT INTO `emp` VALUES('2', 'lisi', '25', '6'); INSERT INTO `emp` VALUES('3', 'wangwu', '19', '4'); INSERT INTO `emp` VALUES('4', 'zhaoliu', '29', '5'); INSERT INTO `emp` VALUES('5', 'xiaohong', '30', '2'); INSERT INTO `emp` VALUES('6', 'xiaohu', '26', '3'); INSERT INTO `emp` VALUES('7', 'zhangle', '23', '3'); INSERT INTO `emp` VALUES('8', 'qingtian', '38', '3'); INSERT INTO `emp` VALUES('9', 'xiayutian', '36', '2'); INSERT INTO `emp` VALUES('10', 'fangjia', '40', '1');
Scénario analyse
1. Rejoindre gauche (rejoindre gauche )
A's unique + AB's public
SELECT * from emp e LEFT JOIN dept d ON e.dept_id=d.dept_id;
2. 3. Jointure interne (jointure interne )
AB's public
SELECT * from emp e RIGHT JOIN dept d ON e.dept_id=d.dept_id;
4. (jointure à droite et table à gauche =null)
B's unique
SELECT * from emp e INNER JOIN dept d ON e.dept_id=d.dept_id;
6. Jointure externe complète
A's unique + B's unique + AB's public
Remarque : MySQL ne prend pas en charge FULL OUTER JOIN (support ed dans ORACLE).Utilisez donc UNION pour l'implémenter, qui peut **fusionner + supprimer la duplication**
Scénario d'application :
Les résultats à interroger proviennent de plusieurs tables, et les multiples tables n'ont pas de relation de connexion directe, mais Lorsque les informations de la requête sont cohérentes
Caractéristiques :
1. Le nombre de colonnes de requête qui nécessitent plusieurs instructions de requête est le même2. Le type et l'ordre de chaque colonne de la requête qui nécessite plusieurs instructions de requête sont les mêmes. le meilleur. Cohérent
union all, il peut contenir des doublons**3. Le mot-clé union ** est dédupliqué par défaut
Si vous utilisez
SELECT * from emp e LEFT JOIN dept d ON e.dept_id=d.dept_id WHERE d.dept_id is null;
7. tables gauche et droite = null)
Exclusivité A + exclusivité B
SELECT * from emp e RIGHT JOIN dept d ON e.dept_id=d.dept_id WHERE e.dept_id is null;
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!