如何将3个表中的组合插入到具有3个相应列的第4个表中?

时间:2016-09-10 12:00:43

标签: mysql sql

我有以下表格:

 table1:       table2:       table3:  

|  id  |      |  id  |      |  id  |
|------|      |------|      |------|    
|  1   |      |  1   |      |  1   |
|  2   |      |  2   |      |  2   |

如何执行MySql查询,该查询将第4个表(table4)的所有可能组合插入到具有相应列(id1,id2,id3)的上表中?

基本上我希望我的table4看起来像这样:

| id1 | id2 | id3 |
|-----|-----|-----|
|  1  |  1  |  1  |
|  1  |  1  |  2  |
|  1  |  2  |  1  |
|  1  |  2  |  2  |
|  2  |  1  |  1  |
|  2  |  1  |  2  |
|  2  |  2  |  1  |
|  2  |  2  |  2  |

1 个答案:

答案 0 :(得分:2)

您可以使用create table ascross join

create table table4 as
    select t1.id as id1, t2.id as id2, t3.id as id3
    from table1 t1 cross join
         table2 t2 cross join
         table3 t3;

请注意,SQL表代表无序集。因此,如果您想按照指定的顺序查看结果,请使用:

select t4.*
from table4 t4
order by id1, id2, id3;