A's Unique+B's Unique+ AB's Public
# 🎜🎜#buildTable
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');
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');
Szenario -Analyse### 🎜🎜 ## 🎜🎜#1. )
A ist einzigartig + AB ist öffentlich#🎜🎜 #
SELECT * from emp e LEFT JOIN dept d ON e.dept_id=d.dept_id;
B's Unique + AB's Public
SELECT * from emp e RIGHT JOIN dept d ON e.dept_id=d.dept_id;
#🎜🎜 #
3. Innerer Join (innerer Join)# 4. Linker äußerer Join (linker äußerer Join) und rechte Tabelle = null)
#🎜🎜 #A's unique
SELECT * from emp e INNER JOIN dept d ON e.dept_id=d.dept_id;
#🎜 🎜#
5. Rechter äußerer Join (rechter Join und linke Tabelle = null)B ist einzigartig
SELECT * from emp e LEFT JOIN dept d ON e.dept_id=d.dept_id WHERE d.dept_id is null;
6. Voll äußerer Join
A ist exklusiv + B einzigartig + AB ist öffentlichHinweis: MySQL unterstützt FULL OUTER nicht JOIN (unterstützt in ORACLE).
Verwenden Sie also UNION, um es zu implementieren, Sie können Duplikate **zusammenführen und entfernen**
Anwendungsszenarien:
#🎜 🎜#Die abzufragenden Ergebnisse stammen aus mehreren Tabellen, und die mehreren Tabellen haben keine direkte Verbindungsbeziehung, aber die abgefragten Informationen sind konsistent
Funktionen:1. Die Anzahl der Abfragespalten, die mehrere
Abfrageanweisungen erfordern, ist gleich 2. Die Anzahl der Abfragespalten, die mehrere Abfragen erfordern Anweisungen sind #🎜 🎜#Der Typ und die Reihenfolge jeder Spalte sollten konsistent sein#3 Das Union-Schlüsselwort ** wird standardmäßig dedupliziert #union alle, Duplikate können enthalten sein **
SELECT * from emp e RIGHT JOIN dept d ON e.dept_id=d.dept_id WHERE e.dept_id is null;
7. Vollständiger äußerer Join (vollständiger äußerer Join und linke und rechte Tabellen = null)
A's exklusiv+B's exklusiv
SELECT * from emp e LEFT JOIN dept d ON e.dept_id=d.dept_id UNION SELECT * FROM emp e RIGHT JOIN dept d ON e.dept_id=d.dept_id;
Das obige ist der detaillierte Inhalt vonSo verwenden Sie JOIN in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!