dポイントプレゼントキャンペーン実施中!

1回目
select * from 本データ where 名前='高橋' or メール='x@x.com';
2回目
select * from 仮データ where 名前='高橋' or メール='x@x.com';

データを抽出したいわけではなくて、
同エントリーのあるなしを判断したいだけです。

現使用方(IIS ASP VbScript MDB)としては
if rs.EOF then で
空なら処理続行・あるなら処理無効として判別しています。

1回で終わらないので上記2回にわけて実行し随時判定してます。
これを1回の処理で終わらせることはできないでしょうか?

http://okwave.jp/qa4174831.htmlやJOIN等色々参考にしてみましたが、うまくいかず・・・
過去質問にもあるんだろうけど、それの検索文も見当せずで困っています。
初歩的で申し訳ないですが、よろしくお願いします。

A 回答 (2件)

UNIONクエリでは如何でしょう。



SELECT 1 AS 区分,* FROM 本データ WHERE ~
UNION
SELECT 2 AS 区分,* FROM 仮データ WHERE ~

上記SQLでレコードセットを開きます。
(1)1レコードも無ければ本データ、仮データともない
(2)2レコードあれば本データ、仮データともある
(3)1レコードの場合、区分=1なら本データ、区分=2なら仮データのみ

但し、本データ、仮データとも同じフィールド数、同じ属性の並びで
なければなりません(フィールド名は異なっていても良い)
    • good
    • 0
この回答へのお礼

CHRONOS_0もご指摘いただいてる通りユニオン結合で解決しました。

例に沿って式まで書いていただき大変たすかりました。
(というか ただSQLに UNION 足してくっつけで結果でました・・)
データを参照する必要がないので、AS 区分,* 抜いてます。

教えていただき一歩前進したので、次のことにかかってますが
いずれまたこういう状況にもなるだろうし、
抜いた結果と抜かない結果がどうなるかなど勉強したいと思います。

初歩的な質問なのに
詳細に回答いただきましてありがとうございました。

お礼日時:2008/12/01 02:59

テーブルの比較ならクエリでしょ



本にあって仮にないものを抽出したければ

select * from 本データ where not exists (select * from 仮データ where 仮データ.名前=本データ.名前 and 仮データ.メール=本データ.メール)

逆の場合は本と仮を入れ替え
同時に出したければ両者をユニオンで結合します
    • good
    • 0
この回答へのお礼

該当するかだけの抽出だったので
ユニオン結合 nda23さんのやり方でばっちしできました。

たぶん非常に単純な質問だと思いますが
詳しく教えていただきありがとうございました。

お礼日時:2008/12/01 02:48

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