sql,使用来自另一个表的值添加到表

时间:2011-09-12 23:38:20

标签: sql insert

所以我有表A和表B. 我在表A中插入一个条目,这将在表A中生成一个id。 现在我想使用此id在表B中插入另一个条目。 我在表A中创建的条目有一个唯一的字段,我可以搜索以获取我创建的条目。 感谢所有提前帮助的人!

3 个答案:

答案 0 :(得分:1)

也许有点干净?

INSERT INTO table_b
SELECT
  id,
  value2
FROM table_a
WHERE unique_column = 'value'

答案 1 :(得分:0)

这样的事情应该有效。

INSERT INTO table_b
(column1, column2, etc)
VALUES
(
    ( SELECT id FROM table_a WHERE unique_column = 'value' LIMIT 1 ),
    value2,
    etc
)

作为替代方案,如果您使用的是PHP,则可以使用mysql_insert_id或类似的函数来获取将行插入表A的ID。

答案 2 :(得分:0)

如果使用PHP:

我想当你说“这会生成一个id”时,你的意思是该列是AUTO_INCREMENT所以这个id将由MySQL设置。

然后您应该使用mysql_insert_id()PDO::lastInsertId与PDO。

那应该是这样的:

mysql_query("INSERT INTO table_A ...");
$last_id_in_table_A = mysql_insert_id();
mysql_query("INSERT INTO table_B (id_table_A) VALUES ($last_id_in_table_A)");