MySql INNER JOIN三表联查性能如何提升

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySql INNER JOIN三表联查性能如何提升相关的知识,希望对你有一定的参考价值。

SELECT product.*,stock.bj,stock.sh,stock.gz,stock.cd,stock.wh,stock.sy,stock.xa,sales_volume.fif,sales_volume.thirty
FROM `product`
LEFT JOIN `stock` ON product.sku=stock.sku
LEFT JOIN `sales_volume` ON product.sku=sales_volume.sku

inner join(等值连接) 只返回两个表中联结字段相等的行
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录

INNER JOIN 语法:

INNER JOIN 连接两个数据表的用法:
SELECT * FROM 表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号

INNER JOIN 连接三个数据表的用法:
SELECT * FROM (表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号

INNER JOIN 连接四个数据表的用法:
SELECT * FROM ((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3 ON 表1.字段号=表3.字段号) INNER JOIN
表4 ON Member.字段号=表4.字段号

INNER JOIN 连接五个数据表的用法:
SELECT * FROM (((表1 INNER JOIN 表2 ON 表1.字段号=表2.字段号) INNER JOIN 表3
ON 表1.字段号=表3.字段号) INNER JOIN 表4 ON Member.字段号=表4.字段号) INNER JOIN 表5 ON
Member.字段号=表5.字段号
参考技术A 告诉你一个原则小表驱动大表,也就是最左边的表一定是数据量少于join后面的那些表。

三表联查

SELECT u.`id`,u.`user_id`,u.`name` FROM USER u
   LEFT JOIN user_dept ud ON u.`id`=ud.`user_id`
   LEFT JOIN dept d ON ud.`dept_id`=d.`id`
   WHERE d.`id`=1
   GROUP BY u.`id`

以上是关于MySql INNER JOIN三表联查性能如何提升的主要内容,如果未能解决你的问题,请参考以下文章

SSH中Dao三表联查如何做,除了本地Sql和HQL语句

mysql三表联查,

MySql的join(连接)查询 (三表 left join 写法)

mysql三表联合查询

mysql三表联合查询问题

inner join on 三表查询四表查询5表查询不管多少表都可以