Oracle
 sql >> база данни >  >> RDS >> Oracle

Как да актуализирате стойностите на колоната на една таблица със стойностите на колоната на друга таблица?

Този вид заявка се нарича корелирана подзаявка. За вашите изисквания, заявката ще бъде както по-долу....

update students s
  set s.department = (
          select e.qualification
            from employee e
            where s.uniquename = e.uniquename 
              and s.Homecountry = e.Homecountry
       );

актуализиране на тази публикация въз основа на вашите отговори по-долу.

Отново, продължавайки напред, винаги публикувайте таблицата за създаване и вмъквайте изрази (и очакваните резултати), за да възпроизведете вашия случай. Ако не видите очакваните резултати или ако видите грешка, когато изпълните заявката, публикувайте точното съобщение, вместо просто да кажете „не работи“. Ето резултатите от моята sqlplus сесия.

---създайте таблица и вмъкнете изрази

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;

Преди да актуализирате данните...

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

Актуализиране на изявление и резултати

  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.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Мигриране на база данни на Oracle от AWS EC2 към AWS RDS, част 3

  2. Настройка на SQL заявка в Oracle

  3. Как да получите информация от потребителя по време на изпълнение

  4. Функция JSON_OBJECT() в Oracle

  5. ORA-12170:TNS:Възникна изчакване на връзката