提问者:小点点

sql插入到与另一个表和常数值相关的表


我有两个SQL表,表1和表2。

table1有两列,我想向这些列插入值。其中一列应获取静态值,另一列应获取来自table2的查询结果的值。

如果我想单独插入静态数据,我会这样做:

INSERT INTO table1(login_id)
VALUES ('1234');

如果我想单独插入动态值,我会这样做:

INSERT INTO table1(user_uuid)
SELECT users_uuid FROM table2 where first_name like 'ortal';

如何在一个操作中将两个值插入表 1?

如果我尝试第一个查询,会得到:

11:20:45    INSERT INTO table1(login_id ,user_uuid) VALUES ('1234') Error Code: 1136. Column count doesn't match value count at row 1   0.000 sec

INSERT INTO `users`.`table1` (`login_id`) VALUES ('1234');

ERROR 1364: 1364: Field 'user_uuid' doesn't have a default value

共1个答案

匿名用户

您可以将常量添加到选择列表中,并将它们视为列:

INSERT INTO table1(user_uuid, login_id)
SELECT users_uuid, '1234' FROM table2 WHERE first_name LIKE 'ortal';