Rumah  >  Artikel  >  pangkalan data  >  Cara menggunakan JOIN dalam MySQL

Cara menggunakan JOIN dalam MySQL

WBOY
WBOYke hadapan
2023-06-03 09:30:351447semak imbas

Pengenalan

Cara menggunakan JOIN dalam MySQL

  • Orang awam+AB unik A

  • Orang awam AB+ unik B

  • Orang awam AB

  • Eksklusif A

  • Eksklusif B

  • Eksklusif A + Eksklusif B + Orang awam AB

  • Eksklusif A + B eksklusif

Senaman

Buat jadual

Meja jabatan

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');

Meja pekerja

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');
Analisis Senario

Kiri sertai )

A's unique + AB's public

SELECT * from emp e LEFT JOIN dept d ON e.dept_id=d.dept_id;

Cara menggunakan JOIN dalam MySQL

Right join (right join)

Unik B + AB

SELECT * from emp e RIGHT JOIN dept d ON e.dept_id=d.dept_id;

Cara menggunakan JOIN dalam MySQL

3 Orang awam AB

SELECT * from emp e INNER JOIN dept d ON e.dept_id=d.dept_id;

Cara menggunakan JOIN dalam MySQL4 Sambungan luar kiri (sambung kiri dan jadual kanan = batal)

Unik A

SELECT * from emp e LEFT JOIN dept d ON e.dept_id=d.dept_id WHERE d.dept_id is null;

Cara menggunakan JOIN dalam MySQL5 Cantuman luar kanan (cantuman kanan dan meja kiri = null)

Unik B

SELECT * from emp e RIGHT JOIN dept d ON e.dept_id=d.dept_id WHERE e.dept_id is null;

Cara menggunakan JOIN dalam MySQL6 gabungan luar penuh

Unik + B +. Orang awam AB

Nota: MySQL tidak menyokong FULL OUTER JOIN (disokong dalam ORACLE).

Jadi gunakan UNION untuk melaksanakannya, anda boleh **gabung + alih keluar pendua**

Senario aplikasi:

Untuk ditanya Hasilnya datang daripada berbilang jadual, dan berbilang jadual tidak mempunyai hubungan sambungan langsung, tetapi maklumat yang ditanya adalah konsisten

Ciri:

1 🎜 >Bilangan lajur pertanyaan dalam pernyataan pertanyaan adalah sama

2 Untuk pertanyaan yang memerlukan berbilang pernyataan pertanyaanjenis dan susunan setiap lajur hendaklah konsisten

3. Kata kunci kesatuan ** mengalih keluar pendua secara lalai

Jika anda menggunakan kesatuan semua, ia boleh mengandungi pendua**

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;

.

7. Semua join asing (sambungan luar penuh dan jadual kiri dan kanan = batal)

Cara menggunakan JOIN dalam MySQL

Unik A + B

SELECT * from emp e LEFT JOIN dept d ON e.dept_id=d.dept_id WHERE d.dept_id is null UNION SELECT * FROM emp e RIGHT JOIN dept d ON e.dept_id=d.dept_id WHERE e.dept_id is null;

Atas ialah kandungan terperinci Cara menggunakan JOIN dalam MySQL. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:yisu.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam