0

我有一个带有 fields 的表id_osztalyid_csoportositas并且name(以及其他一些字段,但不重要)。

我想创建一个具有以下结果的查询:我想组合这些name字段。我无法解释,所以我举一个例子:表中的数据(id_osztalyid_csoportositas顺序name):

1,1,Group1A
1,1,Group1B
1,2,Group2A
1,2,Group2B

我想要以下组合name

Group1A-Group2A
Group1A-Group2B
Group1B-Group2A
Group1B-Group2B

(类似于排列)。我可以用 a 来做到这一点JOIN,没关系。但是当我三个不同的值时id_csoportositas

1,1,Group1A
1,1,Group1B
1,2,Group2A
1,2,Group2B
1,3,Group3A
1,3,Group3B
1,3,Group3C

我想:

Group1A-Group2A-Group3A
Group1A-Group2A-Group3B
Group1A-Group2A-Group3C
Group1A-Group2B-Group3A
Group1A-Group2B-Group3B
Group1A-Group2B-Group3C
Group1B-Group2A-Group3A
Group1B-Group2A-Group3B
Group1B-Group2A-Group3C
Group1B-Group2B-Group3A
Group1B-Group2B-Group3B
Group1B-Group2B-Group3C

是的,它是双重连接。但我不知道表中有多少不同id_csoportositas。第一个 blick 我认为我需要与JOIN不同的数量相同的数量id_csoportositas

(my)sql 中是否有任何技巧可以做到这一点,或者我应该PHP使用for-cycle 来做到这一点?

编辑也许我不清楚。我知道我怎么能JOIN同一张桌子两次或三次。如果我有两个不同的id_csoportositas,我只需要一个JOIN。如果我有三个不同的id_csoportositas,我需要两个JOIN- 我也可以这样做。但我不知道存在多少不同id_csoportositas,所以我不知道需要多少JOIN。s的数量JOIN取决于不同的数量id_csoportositas,我不知道id_csoportositas没有查询的数量。

而且我要分组id_osztaly,不同id_osztaly有不同id_csoportositas

我希望现在很清楚。

4

1 回答 1

0

不会像这样工作:

SELECT * FROM
(
    (SELECT * FROM table WHERE something = 1) a,
    (SELECT * FROM table WHERE something = 2) b,
    (SELECT * FROM table WHERE something = 3) c
)

您只需像这样选择,它将提供连接的所有可能变化:)

于 2012-07-16T09:55:25.440 回答