【问题标题】:sql insert select combinationssql插入选择组合
【发布时间】:2014-04-11 12:24:08
【问题描述】:

我有两个表:table1 有一个列,其中保存了 id1。表2有 除其他外,保存 id2 的列。 现在我想要这两个表的所有组合并将其插入另一个空表中。 问题是另一列应该代表所有组合的总和 已经提到了。 这是我尝试过的,但没有奏效:

INSERT INTO cards (cardid, color, value)
SELECT   mult.colorid + 1000 * mult.valueid, mult.colorid, mult.valueid
FROM (
        SELECT c.colorid 
        FROM color c
        UNION ALL
        SELECT v.valueidid 
        FROM value v
        )  mult

【问题讨论】:

  • 没有工作”在我知道的任何 DBMS 中都不是有效的错误消息

标签: sql select insert


【解决方案1】:

要获得两个表之间的所有组合,请在它们之间进行 CROSS JOIN

INSERT INTO cards (cardid, color, value)
Select c.colorid + 1000 * v.valueid, c.colorid, v.valueid
FROM   color c CROSS JOIN value v

【讨论】:

    【解决方案2】:
    INSERT INTO cards (cardid, color, value)
    SELECT   c.colorid + 1000 * v.valueid, c.colorid, v.valueid
    FROM color c, value v
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-18
      • 2014-10-26
      • 2014-10-05
      • 2017-05-29
      • 2018-03-20
      • 2014-10-17
      • 1970-01-01
      相关资源
      最近更新 更多