代码之家  ›  专栏  ›  技术社区  ›  heimatlos

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

sql
  •  1
  • heimatlos  · 技术社区  · 14 年前

    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 回复  |  直到 14 年前
        1
  •  2
  •   Mark Byers    14 年前

    两个连接应该可以做到这一点:

    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 ...