![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
以下のような3つのテーブルから、テーブル①の行はフルに表示した状態で、テーブル②と③を結合した状態でOUTER LEFT JOINをしたいのですが、うまくいきません。
下記のように記載すると、どうしても②と③で一致したものに限定されてしまい、テーブル①のデータを全て表示させることができないため、ご教授いただきたいです。
<試してみたクエリ1>
※テーブル②と③にある項目しか抽出されないため、テーブル①のID:4,5が消える・・・
select * from テーブル① outer left join テーブル② on テーブル①.ID = テーブル②.ID,
テーブル③
where テーブル②.金額 = テーブル③.金額
<試してみたクエリ2>
※テーブル①と③に共通する項目がないため、以下じゃ不可でした・・・
select * from テーブル① outer left join テーブル② on テーブル①.ID = テーブル②.ID,
outer left join テーブル③ on テーブル②.金額 = テーブル③.金額
--------------------------
【ベースとなるテーブル】
--------------------------
テーブル①
ID 商品名
1 あああ
2 いいい
3 ううう
4 えええ
5 おおお
テーブル②
ID 金額 個数
1 1000 10
2 2000 30
3 3000 20
5 5000 40
テーブル③
金額 レベル
1000 1
2000 3
3000 15
4000 20
--------------------------
【出したい抽出結果】
--------------------------
ID 商品名 金額 個数 レベル
1 あああ 1000 10 1
2 いいい 2000 30 3
3 ううう 3000 20 15
4 えええ NULL NULL NULL
5 おおお 5000 NULL NULL
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
<試してみたクエリ2> でいいはずです。
具体的に、どんな理由で「不可」なのでしょうか?
* で全て選択しているので、 「 テーブル②.ID がNULLになっている」のを見て、「IDがNULLになっている」と思いこんで「だめ」と思ってたりしませんか?
(または、テーブル③.金額 がNULLになっているのを見て)
ID 商品名 金額 個数 レベル
5 おおお 5000 NULL NULL
であってますか?
個数は テーブル②.個数 しかないので、この場合 40 になります。
「テーブル③に該当する金額が無い場合は、個数は テーブル②.個数 ではなくNULLにしたい」ということなら、そういうSQLを書く必要があります。(CASE式を使う等)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle SQL update方法 2 2022/06/22 14:07
- Access(アクセス) アクセス 削除するレコードを含んだテーブルを指定してくださいのエラー対処方法 1 2022/11/24 15:01
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- その他(データベース) pythonでsqlight勉強中、クエリー結果の利用法教えて下さい 1 2022/04/28 20:38
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
- SQL Server ACCESSで3ファイルを結合して、表を作成するやり方を教えて下さい。 17 2022/08/15 20:34
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SELECT 文の NULL列は?
-
UPDATE文の更新順序について
-
SQLでUPSERTを一度に複数行やる...
-
単純なselectが遅くなるのです...
-
LASTVAL()の使い方
-
テーブルに存在しない列をselec...
-
最新レコードを抽出し外部結合...
-
よろしくお願いします。
-
PostgreSQL レコードからアイテ...
-
Postgresqlで配列に日付を格納...
-
PostgreSQLでのTimestamp列と数...
-
テーブルのレコードの追加でに...
-
SQLにて指定日付より前、かつ最...
-
javaでデータベース上のテーブ...
-
Postgresのデータ領域の拡張に...
-
SQLクエリで、3つ以上のテーブ...
-
reindex と update のデッドロック
-
テーブルのレコード件数取得に...
-
SQLのsum関数
-
【PostgreからSQL-Serverのテー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT 文の NULL列は?
-
テーブルに存在しない列をselec...
-
SQLにて指定日付より前、かつ最...
-
SQLでUPSERTを一度に複数行やる...
-
単純なselectが遅くなるのです...
-
PostgreSQLの断片化の状況を確...
-
javaでデータベース上のテーブ...
-
2つのテーブルで引き算 postgres
-
Postgresのデータ領域の拡張に...
-
最新レコードを抽出し外部結合...
-
UPDATE文の更新順序について
-
テーブルを作ろうとしたら。
-
reindex と update のデッドロック
-
Postgresqlのレポート機能について
-
レコードを1件のみ取得した後...
-
テーブルにcsvファイルをインポ...
-
重複を許すキーの構文がわかり...
-
PostgreSQL 8.0.2 の ERROR: r...
-
フィールドの入れ替えはできま...
-
バキューム処理の実行時間の目安
おすすめ情報