JOIN
Prerequisites
为了演示相关语法,需要先准备实验数据。
已有 Table:
-- employee
CREATE TABLE employee (empid VARCHAR(10), name VARCHAR(10), age INT);
INSERT INTO employee (empid, name, age)
VALUES ('A101', '佐藤', 40),
('A102', '高桥', 28),
('A103', '中川', 20),
('A104', '渡边', 23),
('A105', '西泽', 35);
-- sales
DROP TABLE IF EXISTS sales;
CREATE TABLE sales (empid VARCHAR(20), sales INT, month INT);
INSERT INTO sales VALUES ('A103',101,4);
INSERT INTO sales VALUES ('A102',54,5);
INSERT INTO sales VALUES ('A104',181,4);
INSERT INTO sales VALUES ('A101',184,4);
INSERT INTO sales VALUES ('A103', 17,5);
INSERT INTO sales VALUES ('A101',300,5);
INSERT INTO sales VALUES ('A102',205,6);
INSERT INTO sales VALUES ('A104', 93,5);
INSERT INTO sales VALUES ('A103', 12,6);
INSERT INTO sales VALUES ('A107', 87,6);
创建新 Table
-- 其他营业所的 employee
DROP TABLE IF EXISTS other_employee;
CREATE TABLE other_employee (empid VARCHAR(10), name VARCHAR(10), age INT);
INSERT INTO other_employee VALUES("A106", "中村", 26);
INSERT INTO other_employee VALUES("A107", "田中", 24);
INSERT INTO other_employee VALUES("A108", "铃木", 23);
INSERT INTO other_employee VALUES("A109", "村井", 25);
INSERT INTO other_employee VALUES("A110", "吉田", 27);
-- 营业员出生地
DROP TABLE IF EXISTS region_table;
CREATE TABLE region_table (empid varchar(10), region varchar(10));
INSERT into region_table values('A101', '东京都');
INSERT into region_table values('A102', '埼玉县');
INSERT into region_table values('A103', '神奈川县');
INSERT into region_table values('A104', '北海道');
INSERT into region_table values('A105', '静冈县');
UNION
合并显示两张表的查 询结果。
SELECT * FROM employee
UNION
SELECT * FROM other_employee;
也可以合并多张表,只需要继续在后面添加 UNION
以及 SELECT
。
同样可以添加筛选条件 WHERE
。
UNION
默认会合并重复记录。当数据量较大时,这项操作会产生额外的时间消耗。可以使用 UNION ALL
,不进行合并操作。
INNER JOIN
把两个 Table 通过某个连接键连接在一起处理,被称为连接(JOIN
)。