【问题标题】:INSERT result of a SELECT and other values as wellSELECT 和其他值的 INSERT 结果
【发布时间】:2011-10-26 22:57:06
【问题描述】:

我想知道这是否可以在没有过程或服务器端调用数据库的情况下实现。

我正在尝试将值插入基于选择的表中,以及将从服务器提供的其他值。

select 语句将返回多个结果。

我知道 INSERT SELECT 的存在,但是有任何 SELECT INSERT 吗?还是一种基于选择结果的插入方式?

谢谢

【问题讨论】:

  • 基本上“一种基于选择结果的插入方式” - 您提到的 INSERT SELECT,为什么您问相反的问题,或者我的问题错了?
  • @sllev - 标签上写着“mysql”。
  • @Tim:谢谢,我要去睡觉了 ;)

标签: mysql sql select insert


【解决方案1】:

是的。使用这个查询:

INSERT INTO FOO (oof, rab) SELECT (foo, bar) FROM BAR;

【讨论】:

    【解决方案2】:

    我认为你可以这样做:

    INSERT INTO targetTable (col1, col2, col3)
    SELECT col1, col2, col3 FROM sourceTable
    UNION ALL
    SELECT 'something' AS col1, 'something else' AS col2, 'yet something else' AS col3 FROM DUAL;
    

    【讨论】:

      【解决方案3】:

      不太确定似乎是什么问题。

      你可以这样做:

      INSERT INTO table (columns)
      SELECT
        column or column expression1,
        column or column expression2,
        …
        constant or constant expression1,
        constant or constant expression2,
        …
      FROM a set of tables/joins
      WHERE …
      

      不一定按这个顺序(列,然后是常量),不。您可以按照自己喜欢的方式将列与常量混合,只需按照要插入的列的顺序即可。

      你问的是这个吗?

      【讨论】:

      • 谢谢,我没有想到将我的值从服务器传递到选择中。
      【解决方案4】:

      我不明白为什么

      INSERT INTO yourtable(col1, col2, col3)
      SELECT col1, col2, col3
      FROM yourothertable
      

      不适合你。但是您始终可以执行 SELECT INTO #temptable 将查询保存在临时表中,然后您可以插入该数据或在插入之前对其进行操作。不过,这离最初的想法还有很长的路要走。

      我是不是误解了你的问题?

      【讨论】:

      • 问题是插入也需要其他值,而不仅仅是那些形成选择的值
      • @Abraham:这些其他值将来自哪里?
      • 它们将从服务器发送,我需要在 sql 中执行所有操作的原因是这是一个数据库类的示例
      • 然后使用临时表并在插入语句之前合并额外的数据。确保这是在一个连接中,因为在创建连接删除时会删除临时表。
      猜你喜欢
      • 2016-07-02
      • 1970-01-01
      • 1970-01-01
      • 2011-08-30
      • 2020-06-29
      • 1970-01-01
      • 1970-01-01
      • 2013-10-01
      • 2015-02-22
      相关资源
      最近更新 更多