数据库编程中经常会用到连接查询 , left join , right join , inner join , 其各自的用法总结如下 :
表数据如下 :
表A记录数据 :
表B数据 :
left join
执行结果如下 :
# select * from A left join B on A.a_id = B.b_id;
left join (左联接) , 是以左表为准的 , 左表的记录将会全部表示出来 , 而右表只会显示符合搜索条件的记录 , 右表记录不足的地方均为NULL
right join
执行结果如下 :
# select * from A right join B on A.a_id = B.b_id;
right join (右联接) , 是以右表为准的 , 右表的记录将会全部表示出来 , 而左表只会显示符合搜索条件的记录 , 左表记录不足的地方均为NULL
inner join
执行结果如下 :
# select * from A left join B on A.a_id = B.b_id;
inner join (内连接) 组合两个表中的记录 , 只返回在公共字段之中有相符的值
将B表增加一条记录如下 :
再执行 left join
, 结果如下 :
# select * from A left join B on A.a_id = B.b_id;
B表里面有两条
b_id
为2的记录 , 都能与A表里面a_id
为2的数据匹配成功 , 因此返回两条 , 其他查询同理
个人网站: Github , 欢迎点击给星