sql中left join的用法(SQL LEFT JOIN 怎么使用高手进)

本文目录
SQL LEFT JOIN 怎么使用高手进
创建表及数据
create table a(id int,
name varchar(10))
insert into a values (1,’aaa’);
insert into a values (2,’bbb’);
insert into a values (3,’ccc’);
create table b
(id int,
soc numeric(8,1),
date datetime)
insert into b values (1,10.1,’2013-1-1’)
insert into b values (1,12.1,’2013-1-2’)
insert into b values (2,9.8,’2013-1-1’)
insert into b values (2,8.2,’2013-1-2’)
执行
select t1.id,t1.name,t2.soc,t2.datefrom a t1 left join
(select * from b
where exists
(select 1 from
(select id,max(date) date from b group by id) t
where t.id=b.id and t.date=b.date)) t2
on t1.id=t2.id
结果
sql中join的几种常见用法总结
JOIN连接组合两个表中的字段记录,包括三种:
INNER JOIN运算式:连接组合两个表中的字段记录。
LEFT JOIN运算式:连接组合两个表中的字段记录,并将包含了LEFT JOIN左边表中的全部记录。
RIGHT JOIN运算式:连接组合两个表中的字段记录,并将包含了RIGHT JOIN右边表中的全部记录。
INNER JOIN设定两个表相关连的运算式,以连接组合两个表中的字段记录。
INNER JOIN语法如下:
FROM 表1 INNER JOIN 表2 ON 表1.字段1 比较运算子 表2.字段2
两个表连接的字段,譬如 [表1.字段1=表2.字段2],必须具有相同的字段类型,但是字段名称不需要相同。
例如,自动编号字段类型可以连接Long 的字段类型,但是单精整数字段类型不能连接双精整数的字段类型。
比较运算子可为=、《、》、《=、》=、或《》。
JOIN连接的字段,不可以包含MEMO字段类型或OLE对象类型,否则会发生错误。
在一个JOIN表达式中,可以连结多个ON子句:
SELECT fields
FROM 表1 INNER JOIN 表2
ON 表1.字段1 比较运算子 表2.字段1 AND
ON 表1.字段2 比较运算子 表2.字段2) OR
ON 表1.字段3 比较运算子 表2.字段3)
JOIN表达式中,可以为巢状式:
SELECT fields
FROM 表1 INNER JOIN
(表2 INNER JOIN [( ]表3
[INNER JOIN [( ] 表x [INNER JOIN ...)]
ON 表3.字段3 比较运算子 表x.字段x)]
ON 表2.字段2 比较运算子 表3.字段3)
ON 表1.字段1 比较运算子 表2.字段2
在一个INNER JOIN中,可以包括巢状式的LEFT JOIN或RIGHT JOIN,但是在一个LEFT JOIN或RIGHT JOIN中不能包括巢状式的INNER JOIN。

更多文章:
易语言网页api接口怎么调用(易语言,怎么读取网页json的api)
2026年10月11日 08:00
majority of(the majority of 和 a majority of的区别以及用法例句)
2026年10月11日 07:40
another time(another time和other time的区别)
2026年10月11日 05:00








