
SQL初心者です。
教えてください。
A表とB表があります。
A表の伝票Noの列の値とB表の伝票Noの列の値はイコールです。
判定はB表のある別のカラム(sample)と変数Zに格納されている値がイコールという
条件で合致するA表のデータを抽出したいです。
LEFT JOINもしくはINNER JOINなどを使って書けば良いのでしょうか?
例えば
SELECT * from A表 INNERJOIN B表 on A表.伝票No = B表.伝票No
where B表.sample = 変数Z
などと書けば良いのでしょうか?
No.1ベストアンサー
- 回答日時:
こんにちは。
LEFT OUTER JOIN と INNER JOIN は少し差があります。
下記のSQLを実行して確認してみてください。
CREATE TABLE #TempTableA
(
Idx int
, DataA varchar(10)
)
CREATE TABLE #TempTableB
(
Idx int
, DataB varchar(10)
)
INSERT INTO #TempTableA
SELECT 1, 'A' UNION ALL
SELECT 2, 'B' UNION ALL
SELECT 3, 'C' UNION ALL
SELECT 4, 'D'
INSERT INTO #TempTableB
SELECT 1, 'Z' UNION ALL
SELECT 2, 'Y' UNION ALL
SELECT 4, 'X' UNION ALL
SELECT 5, 'V'
上記のSQLを利用してテーブル作成とデータを登録します。
その後、LEFT OUTER JOIN でIdx値が3のデータを抽出してみます。
SELECT A.Idx, A.DataA, B.DataB
FROM #TempTableA A LEFT OUTER JOIN #TempTableB B
ON A.Idx = B.Idx
WHERE A.Idx = 3
結果は下記のとおりです。
1件のデータが出ます。
ですが、#TempTableBテーブルにはIdxが3のデータがないのでnullのデータで表示されます。
IdxDataADataB
3CNULL
今回は、INNER JOINで実行してみます。
INNER JOINは両方のテーブルにデータが存在しないとデータが表示されません。
SELECT A.Idx, A.DataA, B.DataB
FROM #TempTableA A INNER JOIN #TempTableB B
ON A.Idx = B.Idx
WHERE A.Idx = 3
ですので、1件も表示されません。
LEFT OUTER JOIN と INNER JOINはこの差がありますので、
注意して適当なSQLを利用する必要があります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessでデータシートに同じデ...
-
結合テーブルでINSERTする方法...
-
Oracleで上書きImportはできま...
-
構文エラー : 演算子がありませ...
-
SQLです教えてくださいお願いし...
-
ORA-01401が表示され、データが...
-
Accessでの稼働日数計算の方法
-
仕事のミス:本番データの削除→...
-
PostgreSQLのパフォーマンスに...
-
Accessのテーブルデータを一気...
-
ACCESSで容量が50MBになった...
-
テーブルで一番古いレコードだ...
-
Access(MDB)の複製(レプリケー...
-
削除したテーブルを元に戻すこ...
-
「テーブルに座って……」という...
-
オーダーの覚え方について
-
会社の飲み会の幹事になり、座...
-
SQLにて指定日付より前、かつ最...
-
SQLでSUMなどの関数でデータが...
-
SQLで漢字名称を都道府県や市区...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでデータシートに同じデ...
-
Oracleで上書きImportはできま...
-
Accessのテーブルデータを一気...
-
テーブルで一番古いレコードだ...
-
このISAMでは、リンクテーブル・・
-
アクセス レコードセットを更...
-
ビューのソートについて
-
結合テーブルでINSERTする方法...
-
ORA-01401が表示され、データが...
-
ODBC接続で新しいレコードを追...
-
マテリアライズドビューとスナ...
-
accessでレコード更新直後の反...
-
MS Accessの列と行の入れ替えを...
-
重複クエリを使ったデータ削除
-
住所のDBテーブル、マスターの...
-
テーブル作成について
-
Access VBAからエクセルに出力...
-
処理の途中で停止させ、再開さ...
-
構文エラー : 演算子がありませ...
-
PostgreSQLでテーブル構成を変える
おすすめ情報