left join 如何三表查询

Posted

tags:

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

SELECT * FROM tb_product a,tb_info b,tb_brand c WHERE a.catname ='手机' AND a.itemname = b.itemname AND b.brand = c.brand

发现这样查询特别慢,去掉c表以后就快了,join查询是否能解决此问题,谢谢了。

SELECT * FROM tb_brand c left join (SELECT * FROM tb_product a,tb_info b WHERE a.itemname = b.itemname AND a.catname ='手机') d on d.brand = c.brand;
没试,但写完后感觉只会比你的更慢。<擦汗>
我认为,想提速最好不要三表联查,让前两个表关联建个表再和第三个关联查询会好很多,还有就是别用*,把要查的字段列出来。
参考技术A 不会

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

一、创建三个表

1.hanshu

2.YingHu

3.text

技术分享图片

二.关系图连接设主键

技术分享图片

 

 三.inner  join   on  使用语法

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 on用法三表查询
select hanshu.name,YingHu.YYqq,text.age from

hanshu INNER JOIN YingHu     --第一个表第二个表
ON hanshu.id=YingHu.id         --主键关系
INNER JOIN text                --第三个表
ON hanshu.id=text.id      --主键关系

 

四表查询

--inner join on用法三表查询
select hanshu.name,YingHu.YYqq,fro.sum,text.age from
hanshu INNER JOIN YingHu
ON hanshu.id=YingHu.id
INNER JOIN text
ON hanshu.id=text.id
inner join fro
on hanshu.id=fro.id

技术分享图片

 















以上是关于left join 如何三表查询的主要内容,如果未能解决你的问题,请参考以下文章

MySQL三表查询

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

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

Linq 三表 left join 的实现

mysql三表联合查询

MySQL多表查询 三表查询 连接查询的套路