を選択し、私は私は良い自分自身を説明することを願って、私は1対多の接続(テーブルAとテーブルB)との2つのテーブルを持っています。ここで、TableBにはTableAという外部キー形式の列と3番目のTableCのID(外部キー)の列があります。今通常2〜3行はTableAのと同じFKを共有し、これが私の考えられるシナリオです:他のヌルが存在する場合はnull以外の値を選択しますが、常に行
- 同じFK_TableAを持つすべての行を同じFK_TableAを持つすべての行がFK_TableC
ためのNULL持って同じFK_TableC
- を持っています
TableB ---------------------------- |ID| FK_TableA | FK_TableC | ---------------------------- |1 | 123 | 321 | |2 | 123 | 321 | |3 | 123 | NULL | ----------------------------
だから2行が同じFK_TableAとの差分を持つことはできません。同じFK_TableAを持つすべての行がいずれかNULLまたは同じFK_TableCそうのように持っていますFK_TableCと同じか、それとも同じであるかは、別のものがnullかすべてnullです。
今私の質問は、FK_TableAに基づいてFK_TableAを区別して選択する方法です。FK_TableAを持つ行に値(nullでない)がある場合、その値をnullにしてTableAに結果を結合しますか?しかし、私は常にどちらか失うか、複列WHERE - 私が加入してからしようとしている
。だから私はそうのように選択する必要があります上記の表から:
TmpTable
-------------------------
| FK_TableA | FK_TableC |
-------------------------
| 123 | 321 | => From Above
| 124 | NULL | => If all FK_TableC ware null
| 125 | 325 | => If at least one or all FK_TableC ware 325
-------------------------
は、事前にありがとうございます。
このように、この3つの行をすべて取得することを期待しています。 – sagi
まだ存在していればヌル値ではありませんが、今回はあまりにも速い質問を投稿したと思いますが、MAXとGROUP BY –
を使って答えを見つけたと思います。今質問を削除することができると思います。 – sagi