Heim > Datenbank > MySQL-Tutorial > Was sind die Merkmale der gemeinsamen Tabellenabfrage von MySQL?

Was sind die Merkmale der gemeinsamen Tabellenabfrage von MySQL?

WBOY
Freigeben: 2023-05-29 11:28:05
nach vorne
1709 Leute haben es durchsucht

Vorwort

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

Was sind die Merkmale der gemeinsamen Tabellenabfrage von MySQL?

Was sind die Merkmale der gemeinsamen Tabellenabfrage von MySQL?

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;
Nach dem Login kopieren

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;
Nach dem Login kopieren

1. Traditionelle Methode (schlechte Abfrageleistung)

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.

Was sind die Merkmale der gemeinsamen Tabellenabfrage von MySQL?

2 Zu diesem Zeitpunkt müssen wir nur a und b addieren, um die Gesamtzahl der männlichen Schüler und männlichen Lehrer zu ermitteln

SELECT
	t1.学生男生总数,
	t2.男教师总数 
FROM
	( SELECT count( id ) AS 学生男生总数 FROM student WHERE student.sex = '男' ) t1,
	( SELECT count( id ) AS 男教师总数 FROM teacher WHERE teacher.sex = '男' ) t2
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:yisu.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage