sql中联接方法的总结
sql中关于连接的有三种,一个是内联接,左联接和右联接,其具体的使用方法如下:
?
假设a表和b表的数据是这样的。
a表:
id name1 a2 b3 c
?
b表:
id stock1 152 203 30
?一:内联接: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
?
这个语法是内连接的另外一种写法,其执行结果与inner???join一样:?
?select???*???from???a,b???where???a.id=b.id??
二:外联接
??? 如果是右外连接的话,它将显示b表的所有记录,????select???a.*,b.*???from???a???right???join???b???on???a.id=b.id??
?
??
a.id name b.id stock 1 a 1 15 2 b 2 50 null null 4 3
?
?这就是sql中关于联接的用法!
SQL LEFT JOIN 关键字
LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行。
LEFT JOIN 关键字语法SELECT column_name(s)FROM table_name1LEFT JOIN table_name2 ON table_name1.column_name=table_name2.column_name
注释:在某些数据库中, LEFT JOIN 称为 LEFT OUTER JOIN。
?
通俗的讲:????A???left???join???B???的连接的记录数与A表的记录数同??
??A???right???join???B???的连接的记录数与B表的记录数同????
??A???left???join???B???等价B???right???join???A
?
?? ?如果是左外连接的话,它将显示a表的所有记录,????select???a.*,b.*???from???a???left???join???b???on???a.id=b.id??
??查询的结果是这样的:?
????? ?a.id??????? ?name??? b.id??????? stock??
????
1 a 1 15 2 b 2 50 3 c null null
?