
SELECT *
FROM テーブルA
LEFT OUTER JOIN
( SELECT * FROM テーブルB WHERE テーブルB.列X IS NOT NULL) as テーブルB
ON テーブルA.列A = テーブルB.列A
SELECT *
FROM テーブルA
LEFT OUTER JOIN テーブルB
ON テーブルA.列A = テーブルB.列A
WHERE
テーブルB.列X IS NOT NULL
上のSQLも下の同じ事をしてると思うのですが
上では検索結果が10件出た場合
下では0件になってしまいます。
SQL自体シンプルで間違っていないと思うのですがなぜでしょうか?
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
「LEFT OUTER JOIN 」ではなく「INNER JOIN」ならば同じになりますね。
「LEFT OUTER JOIN」は右側のテーブルに合致する行がない場合、その列はすべてNULLになります。ここがミソです。
( SELECT * FROM テーブルB WHERE テーブルB.列X IS NOT NULL)
として、XがNULLの行を除いたつもりでも、
「LEFT OUTER JOIN」で復活してしまう、そんなイメージです。
No.1
- 回答日時:
>意味は同じはず
同じではありません。
最初のSQLは、テーブルAに対応しないテーブルBの行も、nullで検索されます。
つまり、テーブルB.列Xがnullの行も検索されます。
二つ目のSQLは、テーブルB.列Xがnullの行はwhereで除外されます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- PostgreSQL SQLで検索結果の記事を表示したい 1 2022/04/28 21:03
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- Oracle SQL update方法 2 2022/06/22 14:07
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- Oracle 質問です。 下記のテーブルとデータがあり、 取得想定結果のように出力したいです。 下記のsqlだと0 2 2023/05/23 19:10
- Oracle SQLについて教えて下さい。 主キーを持ったカラムを主キーの機能を持たせたまま カンマ区切りで文字列 1 2023/03/27 22:47
- PostgreSQL postgreSQL カラムの全ての値を取得したい 3 2022/10/07 12:33
- MySQL PhpMyAdminで作成して実行せよ。 東京23区を、皇居を中心とした4つのエリア(南東, 南西, 1 2023/06/11 11:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SELECT 文の NULL列は?
-
テーブルに存在しない列をselec...
-
SQLにて指定日付より前、かつ最...
-
PostgreSQLの断片化の状況を確...
-
2つのテーブルで引き算 postgres
-
単純なselectが遅くなるのです...
-
PostgreSQL レコードからアイテ...
-
SQLでUPSERTを一度に複数行やる...
-
Postgresのデータ領域の拡張に...
-
PostgresSQL-7.1.2におけるgran...
-
Postgresqlのレポート機能について
-
VIEWのCOPYってできないんですか?
-
postgres FILLFACTOR 確認方法
-
一つ前に戻るには…
-
SQLでSUMなどの関数でデータが...
-
外部キーだけのテーブル(主キ...
-
会社の飲み会の幹事になり、座...
-
「テーブルに座って……」という...
-
面接のときテーブルが正面に。...
-
SQL、2つのテーブルで条件一致...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SELECT 文の NULL列は?
-
テーブルに存在しない列をselec...
-
SQLでUPSERTを一度に複数行やる...
-
SQLにて指定日付より前、かつ最...
-
単純なselectが遅くなるのです...
-
PostgreSQLの断片化の状況を確...
-
2つのテーブルで引き算 postgres
-
MS Access から PostgreSQL へ...
-
最新レコードを抽出し外部結合...
-
javaでデータベース上のテーブ...
-
Postgresqlのレポート機能について
-
デットロック回避策(autocommit...
-
PostgreSQL レコードからアイテ...
-
Postgresのデータ領域の拡張に...
-
重複を許すキーの構文がわかり...
-
PostgreSQLのリンクテーブル?...
-
異なるデータベースでのINSERT...
-
テーブルを作ろうとしたら。
-
同一カラムに複数条件指定
-
テーブルにcsvファイルをインポ...
おすすめ情報