表连接查询

表连接查询

mysql 三张表 A与B有关联 A与c有关联 B与c没有关联 怎么查询

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕小蓝 2022-07-01 14:44:16

同学你好,可以使用 A left join B left join C的形式,需要注意的是,必须在select子句中将所有需要获取的字段都进行展示。

如下表中描述了最简单的关联方式,A表中存储了B表和C表的主键,但是B和C两表是没有任何关系的。此时需要将A表中所有数据进行补全,即同学需求中的获取所有数据。

https://img1.sycdn.imooc.com//climg/62be979b09e1ff5502960424.jpg

此时的思路是,将A表作为主表,将B表的数据补充到A表中,然后将这个结果的虚表作为主表,再和C表进行关联。实现的sql如下:

select a.id , a.b_id ,a.c_id,b.name,c.age  
from t_a a
left join t_b b on a.b_id = b.id
left join t_c c on a.c_id = c.id;

结果如下:

https://img1.sycdn.imooc.com//climg/62be97bd09f7fc1504560175.jpg

祝学习愉快~


  • 提问者 自律小子 #1

    老师如果A表不是存在有两个代表B、C表的字段而是只有https://img1.sycdn.imooc.com//climg/62be9a230937a96402080072.jpg这样的关系按照上面方法是查不到数据

    2022-07-01 14:54:47
  • 好帮手慕小蓝 回复 提问者 自律小子 #2

    同学你好,上面仅是用最简单的形式描述思路。

    从同学在主题的描述中,A表与B表,A表与C表,都应当具有关联关系,而这里的关联关系就是书写sql的条件语句。

    另外,老师没有理解同学截图中的含义,建议同学描述一下表之间的关联方式。如果没有字段间的关联,就很难书写on子句的条件,那么可能是无法直接进行查询的。

    祝学习愉快~

    2022-07-01 15:31:49
  • 提问者 自律小子 回复 好帮手慕小蓝 #3

    现在实际场景是我有一个商品表https://img1.sycdn.imooc.com//climg/62be97b4096d9aef10790093.jpg(A)

    与商品标签关联表有关联

    https://img1.sycdn.imooc.com//climg/62be97e50979b9fb10320074.jpg(B)

    商品标签品牌

    https://img1.sycdn.imooc.com//climg/62be981a09c874b711320082.jpg(c)

    商品标签分类

    https://img1.sycdn.imooc.com//climg/62be984509ddf67e10610072.jpg(D)

    目前我想做的是获取商品表关联的商品标签有哪些值,标签可以有多个。我想得到的结果是

    商品名称  属性名称 属性编号等并且查询要分页


    2022-07-01 15:35:46
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师