Um beispielsweise die Anzahl der Abfragen an die Datenbank zu verringern und den Druck auf das System in nicht verwandten Tabellen zu verringern, können wir das Schlüsselwort Union All verwenden, um eine gemeinsame Abfrage der in mehreren gefundenen Daten durchzuführen Tabellen
(Praktisch: In der statistischen Analyse werden unterschiedliche Daten verwendet und nur eine Anfrage verwendet)
Beispiel: Fragen Sie die Gesamtzahl der männlichen Schüler in der Schülertabelle und die Gesamtzahl der männlichen Lehrer in der Lehrertabelle über eine SQL-Anweisung in ab eine Abfrage
Datenbanktabellenvorbereitung:
1. Schülertabelle
SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for student -- ---------------------------- DROP TABLE IF EXISTS `student`; CREATE TABLE `student` ( `id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '', `birth` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '', `sex` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of student -- ---------------------------- INSERT INTO `student` VALUES ('01', '赵雷', '1990-01-01', '男'); INSERT INTO `student` VALUES ('02', '钱电', '1990-12-21', '男'); INSERT INTO `student` VALUES ('03', '孙风', '1990-05-20', '男'); INSERT INTO `student` VALUES ('04', '李云', '1990-08-06', '男'); INSERT INTO `student` VALUES ('05', '周梅', '1991-12-01', '女'); INSERT INTO `student` VALUES ('06', '吴兰', '1992-03-01', '女'); INSERT INTO `student` VALUES ('07', '郑竹', '1989-07-01', '女'); INSERT INTO `student` VALUES ('08', '王菊', '1990-01-20', '女'); SET FOREIGN_KEY_CHECKS = 1;
2. Lehrertabelle
SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ---------------------------- -- Table structure for teacher -- ---------------------------- DROP TABLE IF EXISTS `teacher`; CREATE TABLE `teacher` ( `id` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL, `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL DEFAULT '', `sex` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL, PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic; -- ---------------------------- -- Records of teacher -- ---------------------------- INSERT INTO `teacher` VALUES ('01', '张三', '男'); INSERT INTO `teacher` VALUES ('02', '李四', '女'); INSERT INTO `teacher` VALUES ('03', '王五', '男'); SET FOREIGN_KEY_CHECKS = 1;
Kapseln Sie die abgefragten Daten in eine Tabelle und dann wird die Datenabfrage der Tabelle angezeigt.
Diese Methode ist relativ einfach, erhöht jedoch die Anzahl der Datenbankabfragen erheblich a Junge. Die Gesamtzahl der Personen, b stellt die Gesamtzahl der männlichen Lehrer dar.
SELECT t1.学生男生总数, t2.男教师总数 FROM ( SELECT count( id ) AS 学生男生总数 FROM student WHERE student.sex = '男' ) t1, ( SELECT count( id ) AS 男教师总数 FROM teacher WHERE teacher.sex = '男' ) t2
Das obige ist der detaillierte Inhalt vonWas sind die Merkmale der gemeinsamen Tabellenabfrage von MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!