数据
表A
| id | city |
| 1 | a |
| 2 | b |
| 3 | c |
| 4 | d |
表B
| city | name |
| a | x1 |
| b | x2 |
| c | x3 |
表C
| name | amount |
| x1 | 100 |
| x2 | 200 |
WITH tmp1 AS (
SELECT 1 AS id, 'a' AS city
UNION ALL
SELECT 2 AS id, 'b' AS city
UNION ALL
SELECT 3 AS id, 'c' AS city
UNION ALL
SELECT 4 AS id, 'd' AS city
UNION ALL
SELECT 5 AS id, 'e' AS city
),
tmp2 AS (
SELECT 'a' AS city, 'x1' AS name
UNION ALL
SELECT 'b' AS city, 'x2' AS name
UNION ALL
SELECT 'c' AS city, 'x3' AS name
),
tmp3 AS (
SELECT 'x1' AS name, 100 AS amount
UNION ALL
SELECT 'x2' AS name, 200 AS amount
)
--1:A left join B join C
SELECT a.id,b.city,c.amount FROM tmp1 a
LEFT JOIN tmp2 b ON a.city = b.city
JOIN tmp3 c ON b.name = c.name;
--2:A left join (B join C)
SELECT a.id,d.*
from (
SELECT *
FROM tmp1
)a
LEFT JOIN (
select b.city,c.amount from tmp2 b
JOIN tmp3 c ON b.name = c.name
)d
on a.city =d.city
结果1:
| id | city | amount |
| 1 | a | 100 |
| 2 | b | 200 |
结果2:
| id | city | amount |
| 1 | a | 100 |
| 2 | b | 200 |
| 3 | ||
| 4 | ||
| 5 |
以上。
3万+



被折叠的 条评论
为什么被折叠?



