我有2个表需要从中选择数据。
表1:
| 识别码|姓名|
| - -|- -|
| 一个|若翰|
| 2个|标记|
| 三个|安娜|
表2:
| 人员标识|类型|年份|
| - -|- -|- -|
| 一个|出生的|小行星1920|
| 一个|有刻度的|小行星1950|
| 一个|已死亡|二○ ○ ○年|
| 2个|出生的|小行星1940|
| 2个|有刻度的|小行星1960|
| 2个|已死亡|二〇一一年|
我想编写一个查询,将它们全部放在同一行中,如下所示:
| 标识符|姓名|出生的|grad|已死亡|
| - -|- -|- -|- -|- -|
| 一个|若翰|小行星1920|小行星1950|二○ ○ ○年|
我试探着:
SELECT
t1.id AS id, t1.name AS name,
CASE WHEN t2.type = 'born' THEN t2.year END AS born,
CASE WHEN t2.type = 'graduated' THEN t2.year END AS grad,
CASE WHEN t2.type = 'died' THEN t2.year END AS died
FROM
table1 t1
INNER JOIN
table2 t2 ON t1.id = t2.Person_ID
WHERE
t1.id = 1
GROUP BY
t1.id, t1.name, t2.type, t2.year
这就是我现在得到的结果:
| 标识符|姓名|出生的|grad|已死亡|
| - -|- -|- -|- -|- -|
| 一个|若翰|小行星1920|零值|零值|
| 一个|若翰|零值|小行星1950|零值|
| 一个|若翰|零值|零值|二○ ○ ○年|
1条答案
按热度按时间68de4m5k1#
使用枢纽分析逻辑: