在Mysql中插入

时间:2009-07-07 10:50:27

标签: mysql insert

嗨朋友们让我知道问题的方法如下....... 我试图将一个表插入另一个表作为其列值.... 让我们说table1包含2列,table2包含3列现在我需要将table1作为3列的值插入table2中,以便在该列中应该存在table1。这仅针对MYSQL而言。请指出我包括列的数据类型以及如何检索存储在第3列中的数据。

3 个答案:

答案 0 :(得分:1)

你可以解释一下吗? (举例)

我现在的猜测:

INSERT INTO table2 (id1, value1, more_value)
    SELECT id1, value1, NULL FROM table1

答案 1 :(得分:0)

如果您可以编写一个从table1中选择所需内容的查询,则可以使用INSERT...SELECT插入到table2中。

例如

INSERT INTO table2(col3) 
SELECT CONCAT(col1,col2) as table1val FROM table1

答案 2 :(得分:0)

您无法将整个表格作为列值插入。

如果需要在一列中引用整个table1,则需要在表1中添加某种“group id”,然后将其插入表2并在SELECT上执行JOIN。

例如,如果您希望下表是表2中的值:

original table1:
col1,   col2
==============
"val1", "val5"
"val2", "val6"
"val3", "val7"
"val4", "val8"

new table1:
col1,   col2,   group_id
========================
"val1", "val5", 1
"val2", "val6", 1
"val3", "val7", 1
"val4", "val8", 1

然后在表2中你会有

table2:
col1, col2, group_id
====================
"x",  "y",  1

为了得到回报,你会做一些事情:

SELECT
  table2.col1
  , table2.col2
  , table1.col1
  , table1.col2
FROM
  table2
  INNER JOIN
  table1
  ON (table2.group_id = table1_group_id)

这会给你:

table2.col1, table2.col2, table1.col1, table1.col2
==================================================
"x",         "y",         "val1",      "val5"
"x",         "y",         "val2",      "val6"
"x",         "y",         "val3",      "val7"
"x",         "y",         "val4",      "val8"