如何使用select * from table
将记录插入另一个表并添加其他数据?
table_a
列:id,name table_b
列:ID,姓名,电子邮件,电话我的查询:
INSERT INTO `table_b`
SELECT *
FROM `table_a`
WHERE `id` = '1' + additional data
我找到了答案 查询:
INSERT INTO `table_b`
SELECT a.*, 'email@email.com','1234'
FROM table_a a
WHERE `id`='2'
由于
答案 0 :(得分:6)
您可以只在SELECT
语句中添加常量,例如
INSERT INTO table_b (id, name, email, phone)
SELECT id, name, 'jon.skeet@google.com', '867-5309'
FROM table_a
WHERE id = 1;
请注意,我明确列出了来自table_b
和table_a
的所有列。虽然并非绝对需要这样做,但它使您的代码更易于阅读,更易于维护,并最大限度地减少了以后出错的可能性。
答案 1 :(得分:0)
您可以在SELECT
INSERT INTO table_b
SELECT table_a.id, table_a.name, email = 'myemail@example.com', phone = '123'
FROM table_a WHERE id='1'
当然,列必须匹配。
如果只有一些列(名称或只是实际存在)匹配,您可以在"插入table_b"之后指定要插入的列(注意订单!)声明