在我的PostgreSQL数据库中,我有一个像这样的表:
id|link1|link2|
---------------
1 | 34 | 66
2 | 23 | 8
3 | 11 | 99
link1
和link2
字段都指向同一个表table2
,该表具有id
和descr
字段。
我将执行一个SQL查询,以返回同一行的两个字段的id
和descr
值,如下所示:
id|link1|link2|desc_l1|desc_l2|
-------------------------------
1 | 34 |66 | bla | sisusj|
2 | 23 | 8 | ghhj | yui |
3 | 11 | 99 | erd | bnbn |
我尝试了不同的查询,但是每个人每个id
返回两行,而不是一行。
如何在PostgreSQL 9.04数据库中获得这些结果?
答案 0 :(得分:2)
通常,此查询应为您工作。假设您的第一个表格名称为table_name。
SELECT t.id, t.link1, t.link2,
l1.descr AS desc_l1,
l2.descr AS desc_l2
FROM table_name t
LEFT JOIN table2 l1
ON t.link1 = l1.id
LEFT JOIN table2 l2
ON t.link2 = l2.id;
答案 1 :(得分:0)
您可以在这里使用案例,例如:
select link1,link2,
case
when link1='34' and link2='66' then 'bla'
when link1='23' and link2='8' then 'ghs'
when link1='11' and link2='99' then 'erd'
end as desc_li,
case
when link1='34' and link2='66' then 'sjm'
when link1='23' and link2='8' then 'yur'
when link1='11' and link2='99' then 'bnn'
end as desc_l2
from table1