从MySQL中的3个类别中获取所有可能的组合

时间:2016-12-10 13:03:21

标签: php mysql

我有3个类别(cate1,cate2,cate3),我在数据库中有14行。我喜欢得到所有可能的组合。

Databas:

id   category   
1    cate1
2    cate2
3    cate3
6    cate1
7    cate2
8    cate3
9    cate1
10   cate2
11   cate3
12   cate1
13   cate2
14   cate3

结果:

[0]
    cate1 = 1  (id)
    cate2 = 2  (id)
    cate3 = 3  (id)
[1]
    cate1 = 6  (id)
    cate2 = 7  (id)
    cate3 = 8  (id)
[2]
    cate1 = 9  (id)
    cate2 = 10 (id)
    cate3 = 11 (id)
列出所有组合的

..等等。

请帮忙

1 个答案:

答案 0 :(得分:2)

如果我理解正确,您需要为每个类别cross join

select c1.id, c2.id, c3.id
from (select t.* from t where category = 'cate1') c1 cross join
     (select t.* from t where category = 'cate2') c2 cross join
     (select t.* from t where category = 'cate3') c3;