我在数据库中有2个表:users
和user_settings
。
在users
表格中,我的主键列为user_id
,其他列为first_name
和last_name
。
在user_setting
表格中有4列:user_id
,locale
,value_name
和value
。有不同的user_id
条记录,有些user_id可能会多次出现,也可能不会出现一次。
我想添加user_setting
表,user_id
等于'first_name'而value_name
来自valee
的每个users
的记录1}}表first_name
列。对last_name
也一样。
换句话说,我想在user_setting
,user_id
,locale
列中为每个value_name
添加value
表格值:('en_us','first_name',来自users
表的first_name列)和('en_us','last_name',来自users
表的last_name列)。
例如,在users
表中,如果有user_id:10,其中first_name ='john',last_name ='smith',我想将这两个记录添加到user_setting
表中:
(10,'en_US','first_name','john')和(10,'en_US','last_name','smith')
这个任务的查询是什么?非常感谢
答案 0 :(得分:0)
一个非常天真的解决方案就是选择你想要的字段并将它们插入到另一个表中......
INSERT INTO
user_Setting (
user_id,
locale,
value_name,
value
)
SELECT
user.id,
'en_us',
'first_name',
user.first_name
FROM
user
UNION ALL
SELECT
user.id,
'en_us',
'last_name',
user.last_name
FROM
user
;
这假设此表中没有此类记录,因此您无需在运行INSERT
之前进行任何检查。