从一个表中选择查询并替换另一个表中的所有值

时间:2010-11-10 16:35:27

标签: sql

我需要为网络图编写一个select查询。有两个表格;

select * from node;
 num | node
-----+------
   1 | a
   2 | b
   3 | c
   4 | d

select * from edge;
 e1 | e2 
----+----
 a  | b
 c  | d
 a  | c

我需要一个select语句,它会以像这样的数字形式给出边缘值;

1-2
3-4
1-3

我使用的是postgresql 8.4,但与我的问题没有任何关系。

谢谢。

1 个答案:

答案 0 :(得分:2)

一些JOIN应该可以解决这个问题:

SELECT
    n1.num AS num1,
    n2.num AS num2
FROM node n1
JOIN edge e ON n1.node = e.e1
JOIN node n2 ON n2.node = e.e2

如果您希望输出字符串与问题完全相同,请改用:

SELECT n1.num || '-' || n2.num AS nums
FROM ...