
OS:WindowsXP SP3
使用ソフト: Microsoft Access2003
選択クエリにて、別テーブルのフィールドにある値すべてを抽出条件にできますか?
ホームページに来て頂いた方の検索キーワードを集計しております。
テーブル1には『検索キーワード履歴』フィールドがあり、お客様が使用した検索キーワードが入力されています。(約2万件)
テーブル2には『除外キーワード候補』フィールドがあり、不要なキーワードが入力されています。(約10件)
クエリにて、『検索キーワード履歴』から『除外キーワード候補』の値を全て除いた結果を出力させたいのですが、
抽出条件をどのように指定したらいいのか分かりません。
そもそも、別テーブルのフィールドにある値すべてを除外させる抽出条件って指定できるのでしょうか。
SQLを用いる方法でも構いませんので教えてください。
No.2ベストアンサー
- 回答日時:
SELECT * FROM テーブル1
WHERE NOT EXISTS
(SELECT * FROM テーブル2 WHERE テーブル1.検索キーワード履歴 = テーブル2.除外キーワード候補)
OR 検索キーワード履歴 IS NOT NULL
とか
SELECT * FROM テーブル1
WHERE 検索キーワード履歴 NOT IN (SELECT 除外キーワード候補 FROM テーブル2 )
ということ?
1フィールドに1キーワードの場合です。
No.3
- 回答日時:
>解決方法をご存知でしたら改めてお願い申し上げます。
下記3通りのいづれかをお試しください。
「表示」「集計」で集計方法を「グループ化」
http://office.microsoft.com/ja-jp/access-help/HP …
クエリのプロパティを表示して「固有のレコード」を「はい」にする。
http://office.microsoft.com/ja-jp/access-help/HA …
フィールドのプロパティを表示して「固有の値」を「はい」にする。
http://office.microsoft.com/ja-jp/access-help/HA …
この回答への補足
自己解決しました。
以下、経緯を記入いたします。
目的:
クエリの抽出条件として、別テーブルに登録されているレコード・フィールドを除外キーワードとして使いたい。
参考ページ:No30101.クエリのNot演算子について教えていただけませんか
http://www.accessclub.jp/bbs/0081/beginers30101. …
■解決方法■
1.クエリ作成画面にて テーブル1 の『ID』フィールドと『検索キーワード履歴』を登録します。(『ID』フィールド必須)
2.『ID』フィールドの抽出条件に、以下の文法にて入力します。(改行しない場合は半角スペースを入れてください)
文法:
Not In (SELECT 検索元テーブル.IDフィールド
FROM 検索元テーブル, 除外キーワードテーブル
WHERE 検索元テーブル.検索したいフィールド Like "*" & 除外キーワードテーブル.除外キーワードフィールド & "*")
今回の場合:
使用したテーブルは以下の通り
テーブル1 (テーブル名/検索元テーブルです)
--------------------
ID(フィールド/IDとして使用)
検索キーワード履歴 (フィールド名/検索されるデータ)
テーブル2 (除外したいワードが登録されている)
--------------------
除外キーワード候補 (フィールド名/抽出クエリに用いる除外したいキーワードが登録されている)
実装するとこんな感じ:
Not In (SELECT テーブル1.ID
FROM テーブル1, テーブル2
WHERE テーブル1.検索キーワード履歴 Like "*" & テーブル2.除外キーワード候補 & "*")
以上。
部分一致として動作し、別テーブルのフィールドに登録されたキーワード全件を除外した上で、クエリを出力します。
以上です。失礼いたします。
No.1
- 回答日時:
選択クエリでテーブル1、テーブル2を連結しないで選択
テーブル1の検索キーワード履歴の抽出条件欄に
<>[テーブル2].[除外キーワード候補]
と入力して保存
もし、除外キーワード候補が検索キーワード履歴の一部分なら条件は
Not Like "*" & [テーブル2].[除外キーワード候補] & "*"
としてください。
お返事頂きましてありがとう御座います。
教えていただきました部分一致による抽出条件
Not Like "*" & [テーブル2].[除外キーワード候補] & "*"
によりクエリを実行したところ、意図せぬ結果が出力されました。
部分一致による抽出は機能していますが、
テーブル2.除外キーワード候補へ登録されているレコードの数ぶん(10件)同一内容が出力されてしまいます。
■出力結果(各結果が10件ずつ表示される)
おにく
おにく
おにく
おにく
おにく
おにく
おにく
おにく
おにく
おにく
お魚
お魚
お魚
お魚
お魚
お魚
お魚
・・・以下略
■希望(1件毎に表示)
おにく
お魚
冷凍食品
調味料
菓子
・・・
・・・
・・・以下略
なお蛇足ですが、
Like "*" & [テーブル2].[除外キーワード候補] & "*"
にて実行すると、[除外キーワード]を含む値が1件毎正常に出力されます。
Like と Not Like では挙動が異なるようです。
解決方法をご存知でしたら改めてお願い申し上げます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
ACCESS クエリの抽出条件に他のテーブルの値を参照する方法
Access(アクセス)
-
Accessで任意のテーブルのフィールド値をクエリの抽出条件にできますか?
Access(アクセス)
-
別のテーブルのフィールドを抽出項目にするには?
Access(アクセス)
-
-
4
access別のテーブルを参照してテキストボックスに値を表示、編集したい
Access(アクセス)
-
5
Accessのパラメータークエリで入力する値を、別のテーブルのフィールドの値を初期値とできるか
Access(アクセス)
-
6
Accessのクエリでデータの入力ができません
Access(アクセス)
-
7
Accessで別テーブルの値をフォームに表示したい
その他(データベース)
-
8
クエリのデータをテーブルに入れたい
Access(アクセス)
-
9
<ACCESS>別テーブルのレコードのテキストデータが中に含まれるレコードを抽出する方法を教えてください
Access(アクセス)
-
10
ACCESS フォームをそのまま印刷について
その他(データベース)
-
11
「#エラー」の回避
Access(アクセス)
-
12
ACCESSのフォームからデータの追加ができない
その他(データベース)
-
13
Access]2つのテーブルを比較してフィールドの一部が一致したデータを抽出
Access(アクセス)
-
14
アクセスで#エラーを表示させない方法は?
Access(アクセス)
-
15
Accessのクエリで2つのフィールドが同条件の場合に結合したい
その他(Microsoft Office)
-
16
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
17
クエリで出来た表にチェックボックスを追加する
その他(Microsoft Office)
-
18
Accessクエリ 複数フィールドを対象に空白の場合は全件表示したい
Access(アクセス)
-
19
accessでクエリをExcelにエクスポートする時にファイル名に日付を追加したい
Access(アクセス)
-
20
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
INT関数のバグ?
-
クエリ上でフィールド名が2つ...
-
アクセスでの、フォームとテー...
-
アクセスクエリで英数字のみ半...
-
アクセスのテーブルでコードを...
-
Access フォームで複数テーブル...
-
Access 別テーブルにある値を抽...
-
ACCESSの時刻の引き算
-
Accessで更新履歴情報を保存(...
-
日付型のフィールドに空白を入...
-
ACCESS 重複データを1...
-
Excleピボットでデータのない部...
-
差込印刷での全角表示について...
-
ファイルメーカーのCase関数で
-
VBA 別シートの同じ日付の欄に...
-
アクセスで追加した項目に全て...
-
アクセスのエラー「クエリには...
-
エクセルデータをワードで差し...
-
アクセス 項目毎にデータを横...
-
年度ごとの最大値
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセス・テーブルの改行につ...
-
ACCESSの時刻の引き算
-
クエリ上でフィールド名が2つ...
-
アクセスでの、フォームとテー...
-
Access ルックアップが反映され...
-
Accessで更新履歴情報を保存(...
-
Access 別テーブルにある値を抽...
-
アクセス: フォーム上で計算...
-
アクセスのテーブルでコードを...
-
Access フォームで複数テーブル...
-
アクセスクエリで英数字のみ半...
-
Access フォーム上でのテキス...
-
ACCESSのリストボックスで複数...
-
ACCESSの複数フィールドの検索
-
アクセスの追加クエリで教えて...
-
INT関数のバグ?
-
アクセスに自動入力を入れたい
-
アクセス:SQLでフィールド...
-
Access 住所入力支援が機能しま...
-
Accessでチェックボックスから...
おすすめ情報