私はこれを最初に行う必要はないと確信していますが、ニュアンスを考慮した同様の質問は見つかりませんでした。異なるテーブルの結果をグループ別にグループ化する
userid | label | rank |
=================================
1 | red | 1
1 | green | 2
1 | orange | 3
2 | blue | 1
2 | red | 2
...
各テーブルには、ユーザーID、が、いくつかのあたり最大で3つの項目があります:
は、私はすべてが同様のパターンに従うことを3つのテーブル(fav_food、fav_color、およびfav_place)を持っていますユーザーは3未満であり、他のユーザーは特定の表に対してはを持たない可能性があります。すなわち、ユーザ10は、2つのお気に入りの色、1つのお気に入りの食品、および0つのお気に入りの場所を有する可能性がある。
私のような出力私のデータがそうすることができ、クエリを探しています:
userid | fav_food | fav_place | fav_color | rank
===========================================================
1 | pizza | New York | red | 1
1 | burgers | NULL | green | 2
1 | NULL | NULL | orange | 3
2 | tacos | Chicago | blue | 1
2 | burgers | Orlando | red | 2
...
は基本的に、すべてが一緒に2つの項目をランク付けし、一緒に1つの項目をランク付けし、そして一緒に3つの項目をランク付けし(NULLがのない項目はなかったですそのランクは存在する)。
アプリケーション層で3つの別々のクエリ(各テーブルに1つずつ)+後処理を使用して動作させることができましたが、私の個人的な知識ベースのために、どのようにそれを行うかを知っていたのでしょうか単一のクエリ。
多くの感謝!
FULL OUTER私のタプルのすべての組み合わせの結果セットを与えるために起こっているPM77-1 @ユーザーIDとランク –
ON登録しようが、私はさらにヌルを考慮しながら、ランクを照合することによってそれを軽減する必要があるだろうか? – isick