
最近初めて練習問題に詰まったのでどなたかお力添えください。
目的は3テーブルを使って条件にあったカラムを更新
詳細としては
①AテーブルとBテーブルを結合して条件にあった値を出す
②その出した項目とCテーブルにある値を比較して一致しているものは更新
更新は
"SET Aテーブル.BUPIIN = Cテーブル.BUPIIN"
になります。
Aテーブル、
ID
NO
NOU
BUPIIN
Bテーブル
ID
NO
NOU
Cテーブル
NO
GO
BUPIIN
select文のみ作りあげたのですがupdate文を作るとなるとどこにどうはめてというのがわからなくなりどなたか知恵をお貸しください。
以下select文
select Aテーブル.NOU from Aテーブル
inner join Bテーブル
on Aテーブル.ID = Bテーブル.ID
and Aテーブル.NO = Bテーブル.NO
and Aテーブル.NOU = Bテーブル.NOU
where
Aテーブル.BUPIIN in (
select Cテーブル.BUPIIN from Cテーブル
where Aテーブル.NO = Cテーブル.NO)
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
更新対象である A テーブルのレコードを中心に考えましょう。
update A
set BUPIIN = (
_ select BUPIIN
_ from C where レコードと一対一結合できるCの条件
) where
exists (select 1 from B where レコードと結合できるBの条件 )
and
exists (select 1 from C where レコードと結合できるCの条件 )
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle 下記のsqlで取得されるレコード以外を取得する方法ありますでしょうか。 SELECT B.番号, B 2 2022/04/20 23:21
- Oracle sqlで質問です。 aテーブルとbテーブルがあり、下記のsqlで取得したidとnameに一致しないレ 1 2022/04/20 20:34
- Oracle sqlのupdate文で質問です。 テーブルBの番号をキーにテーブルAの身長をテーブルBの身長に更新 2 2022/11/02 15:15
- Oracle sqlで質問です。 Aテーブルの情報をBテーブルに更新かけたいです。 やりたいことは、Bテーブルの受 1 2023/05/17 11:17
- Access(アクセス) アクセスの更新クエリでカレントレコードのみ更新したい 1 2022/06/02 23:32
- Oracle update文で質問です。 下記の条件でupdateをしたいですが、どのようにしたら良いでしょうか。 2 2022/06/23 10:51
- MySQL 複数DBテーブルからのデータ取得 3 2022/05/17 15:02
- MySQL 【MySQL】本当に困っています。詳しい方、ご教授よろしくお願いします。 1 2023/06/03 14:18
- SQL Server [SQLServer] テーブル名からカラム名を取得する 1 2022/08/23 21:20
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL、2つのテーブルで条件一致...
-
sqlplusで表示が変なので、出力...
-
update文で改行を入れる
-
SQL 複数テーブルのupdate
-
テーブル名をカラムとして取得...
-
SQL*LoaderでCSVから指定した列...
-
DBからタブ区切りのCSVデータを...
-
SQLで違うテーブルの値を比較し...
-
SQLでSUMなどの関数でデータが...
-
特定のカラムが更新されたとき...
-
OracleのSQLで同テーブルのカラ...
-
文字列分割
-
数値をNUMBER型にするかCHAR型...
-
ROWNUMでUPDATEをしたいのです...
-
UPDATE文
-
マテリアライズド・ビューの変更
-
SELECT文で指定桁数分抽出する...
-
日付の古い順番に削除したいの...
-
LONG型の先頭250バイトを Varch...
-
Viewのカラムの長さが不明?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
SQL、2つのテーブルで条件一致...
-
SQL*LoaderでCSVから指定した列...
-
sqlplusで表示が変なので、出力...
-
update文で改行を入れる
-
SQL 複数テーブルのupdate
-
テーブル名をカラムとして取得...
-
SQLでSUMなどの関数でデータが...
-
ROWNUMでUPDATEをしたいのです...
-
カラム位置変更
-
SQLで違うテーブルの値を比較し...
-
SQL(oracle)でご助言いただきた...
-
特定のカラムが更新されたとき...
-
Oracleのview、synonymをCOMPIL...
-
テーブルやカラムの物理名のネ...
-
DBからタブ区切りのCSVデータを...
-
数値をNUMBER型にするかCHAR型...
-
LONG型の先頭250バイトを Varch...
-
OracleのSQLで同テーブルのカラ...
-
Viewのカラムの長さが不明?
-
件数とデータを同時に取得する...
おすすめ情報
where句が間違えてました。
誤)
where
Aテーブル.BUPIIN in (
select Cテーブル.BUPIIN from Cテーブル
where Aテーブル.NO = Cテーブル.NO)
正)
where
Aテーブル.NO in (
select Cテーブル.BUPIIN from Cテーブル
where Aテーブル.NO = Cテーブル.NO)
where句が間違えてました。
誤)
where
Aテーブル.BUPIIN in (
select Cテーブル.BUPIIN from Cテーブル
where Aテーブル.NO = Cテーブル.NO)
正)
where
Aテーブル.NO in (
select Cテーブル.NO from Cテーブル
where Aテーブル.NO = Cテーブル.NO)