两个表中的MySQL所有组合

时间:2014-06-28 14:03:26

标签: php mysql sql

我有两张桌子就像这样......

table1
league, date

table2
league, team

我需要做的是在联赛相互匹配时获得所有可能的组合。

所以例如在table1中我会有..

Bel1, 39319
Bel1, 39320
Ita1, 39321

和表2中的例子..

Bel1, Anderlecht
Bel1, Bergen
Bel1, Dender

并且输出必须给我..

Bel1, 39319, Anderlecht
Bel1, 39319, Bergen
Bel1, 39319, Dener
Bel1, 39320, Anderlecht
Bel1, 39320, Bergen
Bel1, 39320, Dener

这可能吗?我试过在excel中做这件事但是因为我需要处理的数据量超过一百万行并且非常耗时,所以我希望我能在MySQL中做到这一点。

1 个答案:

答案 0 :(得分:2)

这称为cross join。您可以将其用作:

select t1.*, t2.*
from table1 t1 cross join
     table2 t2;

但是,我怀疑你真的想要定期加入:

select t1.*, t2.col1
from table1 t1 inner join
     table2 t2
     on t1.col1 = t2.col1;

您的示例数据没有'Ita1'的输出,表明您确实想要匹配。