MySQL查询使用来自其他两个表的所有id组合预填充连接表

时间:2014-10-09 14:22:10

标签: mysql sql

我有以下查询,它使用给定用户的所有“主题”选项填充连接表。

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
...

1 个答案:

答案 0 :(得分:2)

要获得所有组合,请加入表:

INSERT INTO join_themes_users (join_theme_id, join_user_id)
SELECT themes.theme_id, users.user_id
FROM themes 
CROSS JOIN users