求大佬一句sql怎么写,谢谢

分别有三张表A,B,C,D
A表有字段名称,颜色,尺寸,还有其他信息(不重要)
B表有字段有关联C表的关联ID,名称,颜色还有其他信息(不重要)
C表有字段尺寸,关联B表的ID,还有其他信息(不重要)
D表有所需的信息
那么问题来了,以A表为主表left join该怎么写,需要查询D表里面的信息

select c.* from A left join b on a.名称 = b.名称 and a.颜色 = b.颜色 left join c on b.id = c.关联ID and a.尺码 = c.尺码 left join d on b.关联ID = d.id where ….?
因为B表中名称和颜色相同的有多个,所以必须关联C表的尺寸拿到具体B表中具体哪一条,然后再用B去查询D

这样写貌似有问题,所以我改怎么嵌套查询

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 8

看起来好像没啥问题?语法上可以简写成 USING(名称,颜色,尺寸)

另外好奇问一下,为嘛 (名称,颜色,尺寸) 不单独放在一张表呢?

有几亿种组合,联表太慢?还是?

2年前 评论
study_laraveler (楼主) 2年前

分别有三张表 A,B,C,D

2年前 评论
playmaker 2年前

left join c.xxx a. 尺码 = c. 尺码

把这个and 挪到where里

2年前 评论
fatrbaby

世人都想用一条SQL解决问题,而我总想多用几条SQL解决问题。

2年前 评论
王小大 2年前

也不知道回答的正不正确,用 ChatGPT 回答的。 file

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!