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

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

《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 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年前 评论