2009-03-03 10 views
2

私は以下の構造を持っています:
main:id | meta_data
sub:main_id | another_table_id
メインは1対1のサブに接続されています。 GROUP BYを使用せずに
[main_id] [META_DATA] [another_table_id、another_table_id、another_table_id]1つの結果行で選択された値を連結します(グルーピングなしで)できますか?

が、それは、MySQLで可能です:

は、私は次のようになります1つのレコードとして、私の結果を取り戻すことを望みますか?

+0

GROUP BYを使用しない理由を聞かれますか?正しいインデックスを使用すると、GROUP BYをインデックスで満たすことができます。 – thomasrutter

+0

私は答えを受け入れました.... –

答えて

2

私はこれを行うための自然な方法はGROUP_CONCATを使用しており、GROUP BYなしでこれを行うことはできないと言います。

GROUP BYは、必要なことを行う正しい方法です。

MySQLは、GROUP BYを使用してこの結合を行うことができます。これは、GROUP BYについてのあなたに関するものであれば、一時テーブルまたはファイルセットなしで行うことができます。 GROUP BY列と一致する索引があることを確認する必要があります。

1

あなたはMySqls GROUP_CONCATの機能を探していますか?

+0

GROUP BY ... –

+0

を使用せずに質問に記載されているように答えはいいえです。 –

+0

GROUP_CONCATはMySQLが承認したリレーショナルモデルを破る方法です。あなたが望むことができない場合は、おそらくリレーショナルデータベースを一般的に再考する必要があります。 – kquinn

関連する問題