目录
2,使用SELECT INTO语句将查询到的记录创为一张新表?
一,自连接查询
语法如下:
SELECT 选择列表
FROM 同一张表表名 AS 别名1, 同一张表表名 AS 别名2
WHERE 查询条件
可以看到,使用自连接时,必须给表起别名,来区分使用自连接时由自身表的一个镜像产生的另外一张表。
当所需要的信息都集中到了一张表中时,想要查询相关的信息只需要使用自连接完成相应的查询要求。例如,我现在有一张员工信息表emps,表结构如下??
-- 员工表
CREATE TABLE emps (
eno int NOT NULL PRIMARY KEY, -- eno员工号
ene varchar(100), --employee ene 员工姓名
elr varchar(100) --employee leader员工上司
);
因为每个员工的领导也是员工,所以领导的信息也在员工信息表中。
接下来开始向表中插入记录:
-- 向员工表中插入数据
INSERT INTO emps (eno,ene,elr) VALUES
(10001, 'BOSS',NULL), -- BOSS:公司老板
(10002, 'A', '10005'),
(10003, 'B', '10001'),
(10004, 'C', '10003'),
(10005, 'D', '10001'),
(20001, 'E', '20002'),
(20002, 'F', '10001'),
(20003, 'G', '10001'),
(30001, 'H', '10001'),
(30002, 'I', '30001'),
(30003, 'J', '20002')
任务:查询每名员工的上司是谁(姓名)
分析:因为查询的是 elr 领导列对应的员工号 eno 列,所以连接条件为:别名1.elr = 别名2.eno
对应的语句如下??
SELECT e1.eno AS 员工编号,e1.ene AS 员工名,e2.ene AS 领导名
FROM emps AS e1, emps AS e2
WHERE e1.elr=e2.eno
结果集:
二,多表查询
在实际的查询中,用户所需要的数据并不全都在一张表中&#x