INSERT SELECT和其他值的结果

时间:2011-08-14 21:36:45

标签: mysql sql select insert

我想知道如果没有程序或服务器端调用数据库,这是否可行。

我正在尝试根据select和服务器提供的其他值将值插入表中。

select语句将返回多个结果。

我知道INSERT SELECT的存在,但有没有SELECT INSERT?或基于select的结果插入的方法?

谢谢

4 个答案:

答案 0 :(得分:4)

不确定似乎是什么问题。

你可以这样做:

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 …

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

那是你问的问题吗?

答案 1 :(得分:3)

我不明白为什么

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

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

我误解了你的问题吗?

答案 2 :(得分:3)

是。使用此查询:

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

答案 3 :(得分:1)

我认为你可以这样做:

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;