求大佬一句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
这样写貌似有问题,所以我改怎么嵌套查询
看起来好像没啥问题?语法上可以简写成
USING(名称,颜色,尺寸)
另外好奇问一下,为嘛
(名称,颜色,尺寸)
不单独放在一张表呢?有几亿种组合,联表太慢?还是?
分别有三张表 A,B,C,D
left join c.xxx a. 尺码 = c. 尺码
把这个and 挪到where里
世人都想用一条SQL解决问题,而我总想多用几条SQL解决问题。
也不知道回答的正不正确,用 ChatGPT 回答的。