この種類のクエリは、相関サブクエリと呼ばれます。あなたの条件のために、次のクエリは、あなたの回答に基づいて、この記事を更新....
update students s
set s.department = (
select e.qualification
from employee e
where s.uniquename = e.uniquename
and s.Homecountry = e.Homecountry
);
次のようになります。
また、今後も、作成テーブルを挿入してステートメント(および予想される結果)を挿入して、ケースを再現してください。期待どおりの結果が表示されない場合や、クエリを実行するときにエラーが表示された場合は、単に「動作していません」というより正確なメッセージを投稿してください。私のsqlplusセッションの結果を以下に示します。
---テーブルを作成し、データを更新...
SQL> select * from student;
NAME AGE DEP HOMECOUNTR
-------------------- ---------- --- ----------
Mohan 25 EEE India
Raja 27 EEE India
Ahamed 26 ECE UK
Gokul 25 IT USA
SQL> select * from employee5;
NAME EXP QUA HOMECOUNTR
-------------------- ---------- --- ----------
Mohan 25 ECE India
Raja 24 IT India
Palani 26 ECE USA
Sathesh 29 CSE CANADA
Ahamed 28 ECE UK
Gokul 29 EEE USA
UPDATEステートメントの前に文
create table student(
name varchar2(20),
age number,
department varchar2(3),
HomeCountry varchar2(10)
);
Table created.
create table employee5(
name varchar2(20),
exp number,
qualification varchar2(3),
homecountry varchar2(10)
);
Table created.
insert into student values ('Mohan',25,'EEE','India');
insert into student values ('Raja',27,'EEE','India');
insert into student values ('Ahamed',26,'ECE','UK');
insert into student values ('Gokul',25,'IT','USA');
commit;
insert into employee5 values ('Mohan',25,'ECE','India');
insert into employee5 values ('Raja',24,'IT','India');
insert into employee5 values ('Palani',26,'ECE','USA');
insert into employee5 values ('Sathesh',29,'CSE','CANADA');
insert into employee5 values ('Ahamed',28,'ECE','UK');
insert into employee5 values ('Gokul',29,'EEE','USA');
commit;
を挿入し、その文句を言わないショー
1 update student s set s.age =
2 (select e.exp
3 from employee5 e
4 where e.name = s.name
5 and e.homecountry = s.homecountry
6* )
SQL>/
4 rows updated.
SQL> select * from student;
NAME AGE DEP HOMECOUNTR
-------------------- ---------- --- ----------
Mohan 25 EEE India
Raja 24 EEE India
Ahamed 28 ECE UK
Gokul 29 IT USA
SQL> commit;
Commit complete.
あなたの質問に私の問題は私は学生テーブルからすべての部門の値を更新したくないということです。実際には、私はあなたがselect文のために内部で使ったのと同じWHERE条件を使う必要があります。 – tasmohan
いくつかのデータを説明していただけますか?単語の要件を理解するのは少し難しいです。 –
あなたが探しているものが分かりません - @ Rajeshのクエリは、あなたが尋ねたことを実行します。つまり、 'Student.uniquename = Employee.uniquenameとStudent.Homecountryという条件の下でEmployeeテーブルの修飾列の値を持つStudentテーブルのdepartment列を更新します。 = Employee.Homecountry.'すべての部署の値を更新したくない場合 - 選択した部署の値をwhere条件に追加する - '更新する生徒を設定する(..)ここで ' –
Sathya