最佳回答
0
Z4u3z1 Lv6 专家互助 发布于2022-5-17 10:29(编辑于 2022-5-17 10:42)
SELECT a.ttt as 'ttt',b.vvvv as 'vvv',c.xxxx as 'xxxx' FROM A表 A LEFT JOIN B表 B ON A.xxx=b.xxx INNER JOIN C表 C ON B.YYYY=C.YYYY where a.rq>='' and a.rq<=''
重命名示例
yzm742603(提问者)
- 1、“LEFT JOIN B表 B ”,后面这个B代表什么意思? 2、B表和C表如果需要提取部分字段并把字段重命名需要怎么处理 3、后面这个whERE这个条件能不能前移,因为A表数据量很大,是否能提前过滤呢
Z4u3z1 回复 yzm742603(提问者)
- 1、B表 B 等效于 B表 AS B;2、重命名就是SELECT FROM 中间部分的 as;3、可以 参考 snrtuemc 的 AA(包含前面括号部分)
取消
评论
最佳回答
0
snrtuemc Lv8 专家互助 发布于2022-5-17 10:30
按下面的格式
select AA.a as '字段1',B.b as '字段2',C.c as '字段3' from (select * from A where 日期字段 between '2022-01-01' and '202-04-30' ) AA
left join B on AA.id=B.id
left join C on B.id=C.id
yzm742603(提问者)
- AA是什么意思,我看第一行是AA.a,后面是B.b
snrtuemc 回复 yzm742603(提问者)
- 就是后面A表过滤后,防止出问题,把过滤后的数据作为新的表AA
yzm742603(提问者) 回复 snrtuemc
- 如果A表想增加其他条件应该如何修改,我看括号里面日期过滤已经有一个and 条件了,谢谢
snrtuemc 回复 yzm742603(提问者)
- 直接继续and 字段2=接下去就可以,这个and是between and的格式,不影响你后续的and条件的
yzm742603(提问者) 回复 snrtuemc
- 按照上述语句查询有报错,请看下如何修改,详见截图,谢谢
取消
评论
最佳回答
0
霜凡 Lv5 中级互助 发布于2022-5-17 10:30
SELECT
A.XX,B.XX,C.XX
FROM (SELECT ... FROM A WHERE DATE BETWEEN '2022-01-01 ' AND '202-04-30 ') A
LEFT JOIN B
ON .......
LEFT JOIN C
ON .......
最佳回答
0
梦似幻亦真 Lv3 见习互助 发布于2022-5-17 10:38
WITH T10 AS(
SELECT A,BId,C FROM A WHERE DATE>='2022-01-01' AND DATE<'202-04-30 '
)
SELECT * FROM T10 AS T1
LEFT B AS T2
ON T1.BId=T2.BId
LEFT C AS T3
ON T2.CId = T3.CId
最佳回答
0
CD20160914 Lv8 专家互助 发布于2022-5-17 12:17