ORACLE8.0.5において
A-DB
code char(10);
updte char(14);
B-DB
code char(10);
A-DBとB-DBにおいてcodeが不一致のデータの抽出をする場合、
select B-DB.code from A-DB,B-DB
where A-DB.code <> B-DB.code
and A-DB.updte >= '20020301000000'
and A-DB.updte <= '20020331235959';
上記のようなSQL文を作成し実行したが、A-DBのcodeに対してB-DBのcodeを全部検索し、B-DBの検索分がすべて不一致になってしまいました。 SQLの考え方がまちがっているのかわからないでいるので、アドバイスをお願いいたします。
No.3ベストアンサー
- 回答日時:
B-DBに存在してA-DBに存在しないcodeを検索する場合は以下のSQLです。
select code from b-db
where not exists (select 'X' from a-db where code=b-db.code);
同じように、A-DBに存在してB-DBに存在しないcodeの検索は
select code from a-db
where not exists (select 'X' from b-db where code=a-db.code);
でできます。
No.2
- 回答日時:
select code,updte from a-db
where not exists
(select code from b-db
where b-db.code = a-db.code
)
and A-DB.updte >= '20020301000000'
and A-DB.updte <= '20020331235959';
ではどうでしょうか?
(Oracle 8.1.6では動作しました。)
No.1
- 回答日時:
SQLというよりはリンクするA表とB表の作成の仕方がおかしいのでは?
よく見直してみるとわかると思うのですが、A表とB表をリンク付けるものがありませんよね?
恐らくは以下の事をやりたいのでは?と思いますが。
-------------------------------------
A表 B表
1行目 aaaaa 20020301000000 bbbbb
2行目 ccccc 20020314001100 ccccc
3行目 ddddd 20020331000001 eeeee
4行目 eeeee 20020401000000 fffff
で1行目と3行目のデータを抽出したい。
-------------------------------------
A表とB表をリンク(=)する情報がないと例えば、aaaaaに対して bbbbb,ccccc,eeeee,fffffをcccccに対してbbbbb,ccccc・・・・・
の様に各列に対して全てチェックしてしまうので
結果的にB表の全てのデータが当てはまってしまう結果になります。
そうしたいのであれば、
1. A表,B表に通番という列を追加
2. whereの条件に A.通番 = B.通番を追加
で、予想通りの結果が替えると思います。
一例ですが・・・。(汗;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- SQL Server SQL ServerでDBを構築。これは開発? 4 2022/05/28 14:10
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- IT・エンジニアリング ドメイン駆動設計の値オブジェクトについて質問 1 2023/05/13 02:50
- 情報処理技術者・Microsoft認定資格 応用情報処理技術者試験のシステム利用率の計算について 2 2022/03/28 07:43
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- PHP PostgreSQLからCSV形式でエクスポートする際にカラム内の改行をとる方法 1 2023/02/22 10:05
- Excel(エクセル) アウトラインの小計のやり方 1 2023/03/20 11:51
- MySQL AWSのRDSを無料枠で使用しておりますが、2日前にDBインスタンスを作成し、現在確認したらDBイン 1 2022/07/19 23:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Oracl[10g]の SQL文について(No.8)
-
テーブル名が可変の動的SQLをフ...
-
フラグをたてるってどういうこ...
-
【SQL】他テーブルに含まれる値...
-
SELECT INTOで一度に複数の変数...
-
sqlに記述できない文字
-
オラクルのUPDATEで複数テーブル
-
テーブル名が可変の場合のクエ...
-
PostgreSQLのtimestamp型で時間...
-
既存データをINSERT文にして出...
-
SELECTした結果に行番号を求めたい
-
timestampのデータはどのように...
-
Accessの構成をコピーしたい
-
UPDATEで既存のレコードに文字...
-
pandasでsqlite3にテーブル作成...
-
SQLで、Join句で結合したテ...
-
2つの列からの最大値取得
-
データ無し時は空白行にしたい...
-
テーブル定義書(Oracle) 【IX】...
-
truncate tableを使って複数の...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CPRM decrypterのエラーコード...
-
テーブル名が可変の動的SQLをフ...
-
実行時エラー:2517 プロシージ...
-
複数検索について
-
Oracl[10g]の SQL文について(No.8)
-
Activation codeとは
-
PostgreSQL : 多値従属性(第四...
-
新宿、池袋付近でお勧めの焼き...
-
SQLでTableが作れないlol
-
★★PL/SQLにてTBL内容をCS...
-
selectの書き方を教えてください
-
【SQL】他テーブルに含まれる値...
-
SELECT INTOで一度に複数の変数...
-
フラグをたてるってどういうこ...
-
sqlに記述できない文字
-
PostgreSQLのtimestamp型で時間...
-
timestampのデータはどのように...
-
UPDATEで既存のレコードに文字...
-
テーブル名が可変の場合のクエ...
-
truncate tableを使って複数の...
おすすめ情報