今天遇到一个这样的需求:
1、查询一个表(c)的数据,表里面有个type字段
2、type = 1,就关联表a,查询a.xxxx,type = 2,就关联表b,查询b.yyyy
2、查询出来的别名是 cccc
表结构
| 表名 | 字段名 | 字段名 | 字段名 |
|---|---|---|---|
| c | type | a_id | b_id |
| a | a_id | xxxx | a_name |
| b | b_id | yyyy | b_name |
SELECT
c.type
,CASE
WHEN c.type = 1 THEN a.xxxx
WHEN c.type = 2 THEN b.yyyy
END cccc
FROM
c
LEFT JOIN a ON c.a_id = a.a_id
LEFT JOIN b ON c.b_id = b.b_id
这篇博客讨论了一个SQL查询需求,涉及通过条件判断关联不同表获取数据。当表c的type字段为1时,查询表a的xxxx字段;若type为2,则查询表b的yyyy字段。查询结果别名为cccc。查询语句使用了CASE语句和LEFT JOIN进行联接操作。
2977

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



