代码之家  ›  专栏  ›  技术社区  ›  Peter Turner

带一组常量的insert into的SQL查询

  •  1
  • Peter Turner  · 技术社区  · 15 年前

    似乎应该对此提出质疑,但我想不出怎么做。

    我可以从一个表中插入来填充一半的键,但是我想用一组常量(0,3,5,6,9)来填充另一半。。。

    所以最终结果是这样的

    +--------------+
    |AwesomeTable  |
    +--------------+
    | Id1   | Id2  |
    | 1     | 0    |
    | 1     | 3    |
    | 1     | 5    |
    | 1     | 6    |
    | 1     | 9    | 
    | 2     | 0    |
    | 2     | 3    |
    | ...   | ...  |
    +--------------+   
    

    2 回复  |  直到 15 年前
        1
  •  1
  •   Quassnoi    15 年前

    我有一张有两个主键的桌子

    我相信你想要这个:

    INSERT
    INTO    awesometable (id1, id2)
    SELECT  t1.id1, q.id2
    FROM    table1 t1
    CROSS JOIN
            (
            SELECT  0 AS id2
            UNION ALL
            SELECT  3
            UNION ALL
            SELECT  5
            UNION ALL
            SELECT  6
            UNION ALL
            SELECT  9
            ) q
    

    Oracle

    INSERT
    INTO    awesometable (id1, id2)
    SELECT  t1.id1, q.id2
    FROM    table1 t1
    CROSS JOIN
            (
            SELECT  0 AS id2
            FROM    dual
            UNION ALL
            SELECT  3
            FROM    dual
            UNION ALL
            SELECT  5
            FROM    dual
            UNION ALL
            SELECT  6
            FROM    dual
            UNION ALL
            SELECT  9
            FROM    dual
            ) q
    
        2
  •  0
  •   CristiC jason.zissman    15 年前

    如果我理解正确,也许你可以用这样的方法:

    insert into awesometable (id1, id2) 
    select id1, (select top 1 id2 from table2 where /*a condition here to retreive only one result*/) 
    from table1