mysql 多表左连接

编程入门 行业动态 更新时间:2024-10-09 05:15:05

<a href=https://www.elefans.com/category/jswz/34/1771279.html style=mysql 多表左连接"/>

mysql 多表左连接

用两个表(a_table、b_table),关联字段a_table.a_id和b_table.b_id来演示一下MySQL的内连接、外连接( 左(外)连接、右(外)连接、全(外)连接)。

MySQL版本:Server version: 5.6.31 MySQL Community Server (GPL)

数据库表:a_table、b_table

主题:内连接、左连接(左外连接)、右连接(右外连接)、全连接(全外连接)

表为:

内连接:

1. 交叉连接查询(基本不会使用-得到的是两个表的乘积) (这种查询时候会产生笛卡尔积)

语法: select * from A,B;

2. 内连接查询(使用的关键字 inner join -- inner可以省略)

隐式内连接: select * from A,B where 条件;

显示内连接: select * from A inner join B on 条件;

执行语句为:select * from a_table a inner join b_table bon a.a_id = b.b_id;

总结:当且仅当两个表中的数据都符合on后面的条件的时候,才会被select出来.

左连接:

外连接查询(使用的关键字 outer join -- outer可以省略)

左外连接:left outer join

语句:select * from a_table a left join b_table bon a.a_id = b.b_id;

执行结果:

总结:在查询的时候,以left join 这个关键字左边的表为主表,会将这个表中的数据全部查询出来,如果右表中没有这条数据,则用NULL字段表示.

右外连接:

右外连接:right outer join

select * from A right outer join B on 条件;

语句:select * from a_table a right outer join b_table b on a.a_id = b.b_id;

执行结果:

总结:在查询的时候,会以right join 这个关键字右边的表为主,然后将符合条件的查询出来,左表中没有的字段,使用NULL进行补充

全连接(全外连接)

MySQL目前不支持此种方式,可以用其他方式替代解决。

子查询:

子查询:一条select语句结果作为另一条select语法一部分(查询条件,查询结果,表等)。

语法: select ....查询字段 ... from ... 表.. where ... 查询条件

#3子查询, 查询“化妆品”分类上架商品详情

#隐式内连接

SELECT p.*FROM products p , category c

WHERE p.category_id=c.cid AND came = '化妆品';

#子查询

##作为查询条件

SELECT*FROM products p

WHERE p.category_id=(

SELECT c.cid FROM category c

WHERE came='化妆品');

##作为另一张表

SELECT*FROM products p ,

(SELECT* FROM category WHERE cname='化妆品') c

WHERE p.category_id= c.cid;

查询结果:

总结:可以将一条查询语句作为另外一个查询语句的条件和表,再次进行查询.

更多推荐

mysql 多表左连接

本文发布于:2024-02-16 18:13:08,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1691017.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:mysql   多表左

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!