以下是我对SQL的内连接、左外连接、右外连接以及交叉连接的一些理解,希望能帮助到一些人,也欢迎指正错误。
假设有两张表
A表和B表
A表中的Aid与B表中的Bid关联
内连接:SELECT * FROM A JOIN B ON A.Aid=B.Bid 或者(SELECT * FROM A,B WHERE A.Aid=B.Bid)
1.取一条A表的数据去跟B表中的数据匹配
2.匹配到了则显示接着取A表的下一条数据继续匹配,匹配不到也接着取下一条数据但是不显示
3.重复第2步直至取完A表中的数据
备注:有匹配时返回对应的行
外连接包括左连接和右连接。
左连接:SELECT * FROM A LEFT JOIN B ON A.Aid=B.Bid
1.取一条A表的数据去跟B表中的数据匹配
2.不管有没有匹配到都要显示该条数据,只是没匹配到的B表字段显示为空
3.重复第2步直至取完A表中的数据
备注:返回A表中所有的行
右连接:SELECT * FROM A RIGHT JOIN B ON A.Aid=B.Bid
1.取一条B表的数据去跟A表中的数据匹配
2.不管有没有匹配到都要显示该条数据,只是没匹配到的A表字段显示为空
3.重复第2步直至取完A表中的数据
备注:返回B表中所有的行
备注:返回A表和B表中所有的行