数据库 inner join ,left join,right join 的区别 inner join: 内连接,结果只包含满足条件的列。 left join:左外连接,结果包含满足条件的行及左侧表中的全部行。 right join :右外连接,结果包含满足条件的行及右侧表中的全部行。 SQL 语句(inner join,left out join,right out join) left join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录。 right join :右连接,返回右表中所有的记录以及左表中连接字段相等的记录。 inner join: 内连接,又叫等值连接,只返回两个表中连接字段相等的行。 full join:外连接,返回两个表中的行:left join + right join cross join:结果是笛卡尔积,就是第一个表的行数乘以第二个表的行数。 declare @a table(a int,b int) declare @b table(a int,b int) insert @a values(1,1) insert @a values(2,2) insert @b values(1,1) insert @b values(3,3) select * from @a select * from @b --左: select*from@*********************=Bb.a--右: select*from@**********************=Bb.a--内 select*from@**********************=Bb.a--外: select*from@*********************=Bb.a--交叉连接 select * from @a cross join @b left 以左边为准右边有则显示无则NULL right 反之 inner 只取都不null 的,相当于用from a,b w here ?=?(连接是on ? = ?) left join 和 left ou ter join 的区别 通俗的讲: A left join B 的连接的记录数与A 表的记录数同 A right join B 的连接的记录数与B 表的记录数同 A left join B 等价B right join A 举个例子: 假设a表和b表的数据是这样的。 a b id name id stock 1 a 1 15 2 b 2 50 3 c select * from a inner join b on a.id=b.id 这个语法是连接查询中的内连接,它产生的结果是 两个表相匹配的记录出现在结果列表中。 根据上面的表,出现的结果是这样的 a.id name b.id stock 1 a 1 15 2 b 2 50 ---------------------------- select * from a,b w here a.id=b.id 这个语法是内连接的另外一种写法,其执行结果与 inner join 一样 -------------------------------- select * from a left/right join b on a.id=b.id 这个是外连接语法中的左外连接...