我有以下查询,它使用给定用户的所有“主题”选项填充联接表。
INSERT INTO join_themes_users (join_theme_id, join_user_id);
SELECT theme_id, 1
FROM themes
我现在需要做的是编辑此查询以使用所有用户的所有主题选项填充连接表
这可以在单个查询中完成吗?还是我需要在 PHP 中创建一个 for 循环?
上面的查询产生的结果看起来像......
join_id | user_id | theme_id
----------------------------------------------------
1 1 1
2 1 2
3 1 3
...
我需要的是这样的东西......
join_id | user_id | theme_id
----------------------------------------------------
1 1 1
2 1 2
3 1 3
...
14 2 1
15 2 2
16 2 3
...
27 3 1
28 3 2
29 3 3
...
最佳答案
要获得交叉连接表的所有组合:
INSERT INTO join_themes_users (join_theme_id, join_user_id)
SELECT themes.theme_id, users.user_id
FROM themes
CROSS JOIN users
关于MySQL 查询使用其他两个表中的所有 id 组合预填充连接表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26280895/