gpt4 book ai didi

sql - 如何编写查询以根据表 A 的一列值将表 A 连接到表 B 或 C?

转载 作者:行者123 更新时间:2023-11-29 12:59:39 26 4
gpt4 key购买 nike

表人

ID | NAME   | PHNO |ADDRESS_TYPE
1 | XXXX | 999 | HOME
2 | YYYY | 888 | OFFICE

表 HOME_ADDRESS

ID PERSON_ID ADDRESS
1 | 1 | XXXXXXXXXXX

表 OFFICE_ADDRESS

ID PERSON_ID ADDRESS
1 | 2 | XXXXXXXXXXX

在这里,我希望查询通过基于 ADDRESS_TYPE 连接 HOME_ADDRESS 和 OFFICE_ADDRESS 从表 PERSON 获取记录,如果 ADDRESS_TYPE 是 HOME,那么它应该从表 HOME_ADDRESS 获取地址详细信息,否则地址详细信息应该来自表 OFFICE_ADDRESS。

我正在使用 postgresql 数据库。

最佳答案

这是 mssql 语法,但试试这个:

select p.*, CASE WHEN p.ADDRESS_TYPE = 'HOME' THEN h.ADDRESS ELSE o.ADDRESS END from Person p
LEFT OUTER JOIN HOME_ADDRESS h on p.Id = h.PERSON_ID AND p.ADDRESS_TYPE = 'HOME'
LEFT OUTER JOIN OFFICE_ADDRESS o on p.ID = o.PERSON_ID AND p.ADDRESS_TYPE= 'OFFICE'

关于sql - 如何编写查询以根据表 A 的一列值将表 A 连接到表 B 或 C?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34014291/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com