从两个不同的表插入表

时间:2015-04-23 04:08:59

标签: mysql

这里有3张桌子。

  • sbs_users
  • sbs_permissions
  • sbs_user_permissions

让我们说每张桌子的数据是:

- sbs_users(table1)
userid    username
1         john
2         albert

- sbs_permissions(table2)
permissionid    permission
1               create
2               edit

- sbs_user_permissions(table3)
upid(autoid)    userid    permissionid

我想做的是使用table2中的所有数据插入table3,但只获取table1中的最后一个id。

插入后的预期是:

- sbs_user_permissions(table3)
upid(autoid)    userid    permissionid
1               2         1
2               2         2

提前致谢

2 个答案:

答案 0 :(得分:1)

如果我正确地读了你,你想给用户带有最大用户ID的所有权限吗?如果是这样,那就:

insert into user_permissions select u.id, p.id from
  users u cross join permissions p
  where u.id = (select max(id) from users);

demo here

答案 1 :(得分:0)

你可能需要这样的东西......

INSERT INTO sbs_user_permissions (userid, permissionid)

SELECT u.userid, p.permissionid
FROM sbs_users u
INNER JOIN sbs_permissions p ON 1=1
WHERE u.userid = 2;