| one | two |
-------------
| A | 1 |
| A | 2 |
| B | 1 |
| B | 3 |
| C | 1 |
| C | 4 |
私は、クエリ内の任意の列に何の反復を取得しないしたいと思いますので、それは、すべての行に個別のを検索するための標準的な SELECT DISTINCT one,two FROM table;
またはSELECT * FROM table GROUP BY one,two;
は、かなりの仕事をしないものでこの場合は6行すべてが返されます。マルチコラム
理想的には、私が探しています:PHP(など)で
| one | two |
-------------
| A | 1 |
| B | 3 |
| C | 4 |
、私はちょうど、各列の配列でこれを行うだろう、とその行をスキップする前に、すべての列が使用されている場合。私はMySQLでそれを実装する方法がわかりません。
SELECT * FROM (SELECT * FROM table GROUP BY one) GROUP BY two
- ほとんど動作します。外側のクエリではすべての選択肢が表示されないため、有効なオプションが見つからない、つまりインナーがA、B、Cに崩壊しますが、すべて 1sを2番目のGROUP BY 1行に自分自身を崩壊!
重複チェックの順序は返された正確な行に影響します - それほど気にする必要はありません - 私はちょうど最小限の類似した行を持つ行の良い横断面が必要です。
クエリルールを説明します。同じ 'one 'フィールドを持つ2つの行がある場合、どちらを出力に入れたいのですか? –
あなたの例では最初のマッチである 'A - 1'を選択しましたが、他の2つでは2番目のマッチを選択しました。あなたはどちらかの選択肢を固められますか? –
クレメントの質問に加えて、第1列の「C」がすでに「A」と「B」で発生している第2列の値だけで発生するとどうなりますか? – quosoo