为另一个表中的字段的每个用户ID插入行

时间:2013-07-13 18:22:34

标签: mysql insert

我正在学习MySQL,所以不知道复杂的查询。所以需要你的专家帮助。

我有rc_userfields表,其中包含4个字段,键和位置。现在我想将这4个字段添加到rc_profile表中。我想为所有用户ID添加它。表示将为所有用户ID添加所有4个字段。

rc_userfields表

用户ID可以来自rc_users
rc_users表

因此,最终结果将如下图所示 rc_profile表

请参考以下图片查看所有三个表格:

我知道如何使用以下代码手动插入:

INSERT INTO `rc_profile` (`userid`, `keys`, `data`) VALUES
(1, 'myself', ''),
(1, 'position', ''),
(1, 'nickname', ''),
(1, 'blog', ''),
(2, 'myself', ''),
(2, 'position', ''),
(2, 'nickname', ''),
(2, 'blog', ''),
(3, 'myself', ''),
(3, 'position', ''),
(3, 'nickname', ''),
(3, 'blog', ''),
(4, 'myself', ''),
(4, 'position', ''),
(4, 'nickname', ''),
(4, 'blog', '');

最后:我想为rc_userfields表中的每个用户将rc_profile表中的所有4个字段键添加到rc_users

1 个答案:

答案 0 :(得分:1)

您需要使用CROSS JOIN获取两个表的笛卡尔积,结果将插入表rc_profile,例如。

INSERT  INTO rc_profile (userID, `keys`, data)
SELECT  a.userID, b.key, '' data
FROM    rc_users a CROSS JOIN rc_userfields b