Rumah >pangkalan data >tutorial mysql >Apakah ciri-ciri pertanyaan jadual bersama Mysql
Untuk mengurangkan bilangan pertanyaan ke pangkalan data, sebagai contoh, untuk mengurangkan tekanan pada sistem dalam jadual yang tidak berkaitan, kami boleh menggunakan kata kunci kesatuan semua untuk menyertai data yang ditemui dalam berbilang jadual. Pemprosesan pertanyaan
(memudahkan penggunaan data berbeza dalam analisis statistik dengan hanya satu permintaan)
Contoh: Soal jumlah pelajar lelaki dalam jadual pelajar melalui pernyataan SQL dalam satu pertanyaan Jumlah bilangan guru yang jantinanya dalam jadual guru ialah lelaki
Penyediaan jadual pangkalan data:
Jadual pelajar jadual secara berasingan Tunjukkannya.
Kaedah ini agak mudah tetapi akan meningkatkan bilangan pertanyaan pangkalan data
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. Gunakan kesatuan semua untuk menggabungkan berbilang jadual menjadi satu pertanyaan jadual
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;1 Pada masa ini, a mewakili jumlah pelajar yang jantina lelaki, dan b mewakili jumlah guru yang jantina lelaki 2. Pada masa ini kami hanya menjumlahkan a dan b secara berasingan untuk mengetahui jumlah pelajar lelaki dan guru lelaki
SELECT t1.学生男生总数, t2.男教师总数 FROM ( SELECT count( id ) AS 学生男生总数 FROM student WHERE student.sex = '男' ) t1, ( SELECT count( id ) AS 男教师总数 FROM teacher WHERE teacher.sex = '男' ) t2
Atas ialah kandungan terperinci Apakah ciri-ciri pertanyaan jadual bersama Mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!