使用Join从2个表中获取数据

时间:2014-04-17 04:32:06

标签: postgresql join

我有两张桌子:

1. transfer
2. data

表数据2记录:

   id   name
1.  2   PQR
2.  3   XYZ
表中的

转移5条记录:

    id   to   from   amount   type
1.   1    2      3   100.00    C
2.   2    3      2   200.00    C
3.   3    2      3   150.00    D
4.   4    3      2   150.00    C 
5.   5    2      3   300.00    D

现在我想形成一个查询,它将2置于where条件并给我结果 来自转移表,当2列在to列时,应显示from数据 当2位于from列时,应打印to个数据。 结果我想要其他数量和类型的列。 我希望使用join (Any)的数据,我完全不知道如何执行此任务。

预期结果:

from/to  amount  type
  3      100.00   C
  3      200.00   C
  3      150.00   D
  3      300.00   D

对此有任何指导..

1 个答案:

答案 0 :(得分:1)

尝试这样

select 
case when "from"=2 then "to" when "to"=2 then "from" end "from/to"
,amount,type from transfer 

Out put is

 form/to     amount   type

  3          100      C
  3          200      C
  3          150      D
  3          150      C
  3          100      D

OR

 select case when "from"=2 then d.name when "to"=2 then data.name end "from/to",
 amount,type from transfer inner join data on ("to"=data.id) 
 inner join data as d on("from"=d.id)

Out put is

form/to     amount   type

  XYZ         100      C
  XYZ         200      C
  XYZ         150      D
  XYZ         150      C
  XYZ         100      D

<强> ADDITION
证明工作查询:http://ideone.com/64kIov