求大佬一句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

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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 8

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

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

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

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

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

1年前 评论
playmaker 1年前

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

把这个and 挪到where里

1年前 评论
fatrbaby

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

1年前 评论
王小大 1年前

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

1年前 评论

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