加入好几次

时间:2012-07-16 09:49:30

标签: mysql sql join

我的表格包含字段id_osztalyid_csoportositasname(以及其他一些字段但不重要)。

我想创建一个包含以下结果的查询:我想要合并name个字段。我无法解释所以我举了一个例子: 表格中的数据(id_osztalyid_csoportositasname订单):

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

我想要name的跟进组合:

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

(类似于排列)。我可以用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。第一次点击我认为我需要与JOIN不同的id_csoportositas相同数量的PHP

(my)sql中是否有任何技巧可以执行此操作,还是应该在for中使用JOIN - 循环执行此操作?

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

我希望按id_osztaly进行分组,不同的id_csoportositas有不同的{{1}}。

我希望现在很清楚。

1 个答案:

答案 0 :(得分:0)

不会有这样的工作:

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

您只需选择这样,它就会提供所有可能的连接变体:)