mysql inner join查询_MySQL中链接查询inner join与left join使用

连接查询其实就是对两个表记录做笛卡尔乘积。

如果不指定连接条件的话,则会对每行都做笛卡尔乘积,这样最后返回的结果树就会是两个表记录数的乘积;

如果指定则,则仅对符合列条件的行进行笛卡尔乘积,并返回结果。

在这里可以指定两个列相等,也可以自定两个列其他逻辑关系,而且也可以指定多个列通过or或者and进行连接。

mysql中主要可以使用如下几种join语法

1:join、inner join、cross join;语法:

select * from A inner join B on A.id = B.A_ID; -- 返回匹配的行

2:left join;语法:

select * from A left join B on A.id = B.A_ID; -- 即使右表中没有匹配,也返回左表的所有的行,右表没匹配的都为null;

3:right join ;语法:

select * from A right join B on A.id = B.A_ID; -- 即使左表中没有匹配,也返回右表所有的行,左表没匹配的都为null。

对于join语法有以下几点需要注意:

1:在mysql中,cross join可以由join或者inner join实现,这和mysql的实现是有关系的。

对于cross join操作,是仅作笛卡尔积而没有过滤条件,就是说没有on关键字;对于join与inner join是有on关键字的。

当使用join或者inner join而不使用on关键字,那么其作用就和cross join的作用一样了。

2:在mysql中没有out join,其实left join相当于left out join,同样对于right join也是类似。

3:对于mysql中join语法与两个表使用逗号隔开是一样的,也就是说:

select * from A join B; = select * from A, B;

来自:https://blog.csdn.net/ialexanderi/article/details/79052190

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值