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