0

id_osztalyフィールドと(id_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

(順列と同様)。私はこれをで行うことができますJOIN、それは大丈夫です。しかし、私が3つの異なる値を持っているとき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

これを行うための(my)sqlのトリックはありますかPHPforそれとも-cycleを使用して行う必要がありますか?

編集多分私は明確ではありませんでした。JOINテーブルを2回または3回同じにする方法を知っています。私が2つ異なる場合id_csoportositas、必要なのは1つだけJOINです。私が3つ異なる場合、 id_csoportositas2つ必要です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 に答える