sql >> Database teknologi >  >> RDS >> Oracle

Hvordan opdaterer man en tabelkolonneværdier med en anden tabels kolonneværdier?

Denne form for forespørgsel kaldes en korreleret underforespørgsel. For dit krav vil forespørgslen være som nedenfor....

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

opdatering af dette indlæg baseret på dine svar nedenfor.

Igen, fremadrettet skal du altid poste oprettelsestabellen og indsætte udsagn (og de forventede resultater) for at gengive din sag. Hvis du ikke kan se de forventede resultater, eller hvis du ser en fejl, når du udfører forespørgslen, skal du sende den nøjagtige besked i stedet for bare at sige "virker ikke". Her er resultaterne af min sqlplus session.

---opret tabel og indsæt sætninger

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;
 

Før du opdaterer data...

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
 

Opdater erklæring og resultater

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. Brug af LENGTH (beregnet kolonne) i ORDER BY i Postgres sql

  2. MySQL:Sådan får du længden af ​​tekst i en kolonne

  3. Udefineret egenskab:Illuminate\Database\Eloquent\Collection::Laravel 5.2

  4. ORA-06553:PLS-801:intern fejl [55018] ved test af funktion, der returnerer ROWTYPE