プロが教える店舗&オフィスのセキュリティ対策術

下記のような2つのマスタがあるとします。

・商品名マスタ

商品コード  商品名
- - - - - -  - - - - - -
n01       ナス
k01       カボチャ
n02       ニンジン
t01       タマネギ


・購入履歴マスタ

履歴連番  商品コード  購入日時
- - - - -   - - - - - -  - - - - - -
001     n01      2008-07-01
002     k01      2008-07-02
003     n01      2008-07-03
004     n01      2008-07-04
005     k01      2008-07-04

このとき、購入履歴マスタのレコードに存在しない商品を取得するSQLはどのように組み立てればよいでしょうか?
例えば上記例で言えば、下記のような結果を得ることが目的です。

商品コード  商品名
- - - - - -  - - - - - -
n02       ニンジン
t01       タマネギ

以上、よろしくお願いします。

A 回答 (2件)

こんにちは。



SELECT 商品名マスタ.商品コード
, 商品名マスタ.商品名
, 購入履歴マスタ.商品コード
FROM 商品名マスタ LEFT JOIN 購入履歴マスタ
ON 商品名マスタ.商品コード = 購入履歴マスタ.商品コード
WHERE ((購入履歴マスタ.商品コード) Is Null);

でどうですか。
    • good
    • 0
この回答へのお礼

ありがとうございました

お礼日時:2009/05/20 20:12

RDBMS名、バージョンが明記されていないので、具体的なSQLは提示しません。



次のような方法があります。

(1)not exists
(2)not in
(3)left joinで結合キーがnullの行
    • good
    • 0
この回答へのお礼

ありがとうございました

お礼日時:2009/05/20 20:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す