【发布时间】:2019-07-18 23:41:49
【问题描述】:
我有这些表和值:
Person Account
------------------ -----------------------
ID | CREATED_BY ID | TYPE | DATA
------------------ -----------------------
1 | 1 | T1 | USEFUL DATA
2 | 2 | T2 |
3 | 3 | T3 |
4 | 4 | T2 |
Person_account_link
--------------------------
ID | PERSON_ID | ACCOUNT_ID
--------------------------
1 | 1 | 1
2 | 1 | 2
3 | 2 | 3
4 | 3 | 4
我想选择所有具有 T1 帐户类型的人并获取数据列,对于其他人,他们应该在结果中没有任何帐户信息。
(我注意到人 1 有两个帐户:account_id_1 和 account_id_2,但必须显示一行(如果存在则为 T1 类型的优先级,否则为 null)
结果应该是:
Table1
-----------------------------------------------------
PERSON_ID | ACCOUNT_ID | ACCOUNT_TYPE | ACCOUNT_DATA
-----------------------------------------------------
1 | 1 | T1 | USEFUL DATA
2 | NULL | NULL | NULL
3 | NULL | NULL | NULL
4 | NULL | NULL | NULL
【问题讨论】:
-
如果一个人有多个 T1 账户怎么办?
-
我应该展示第一个(但这不应该发生)
标签: sql postgresql