kzen.dev
  • Otázky
  • Značky
  • Používatelia
Oznámenia
Odmeny
Registrácia
Po registrácii budete informovaní o odpovediach a komentároch na vaše otázky.
Prihlásiť sa
Ak už máte konto, prihláste sa a skontrolujte nové oznámenia.
Za pridané otázky, odpovede a komentáre budú udelené odmeny.
Viac na
Zdroj
Upraviť
 Muhd
Muhd
Question

Oracle SQL: Aktualizácia tabuľky pomocou údajov z inej tabuľky

Tabuľka 1:

id    name    desc
-----------------------
1     a       abc
2     b       def
3     c       adf

Tabuľka 2:

id    name    desc
-----------------------
1     x       123
2     y       345

Ako môžem v Oracle SQL spustiť sql update dotaz, ktorý môže aktualizovať tabuľku 1 s tabuľkou 2's name a desc pomocou rovnakého id? Takže konečný výsledok, ktorý by som dostal, je

Tabuľka 1:

id    name    desc
-----------------------
1     x       123
2     y       345
3     c       adf

Otázka je prevzatá z https://stackoverflow.com/questions/5036918/sql-update-query-with-data-from-another-table, ale konkrétne pre oracle SQL.

232 2011-08-11T18:05:54+00:00 3
 Laxmi
Laxmi
Edited question 22 december 2017 в 5:10
Programovanie
sql
oracle
sql-update
Popular videos
Create new connection with new user in Oracle SQL Developer
Create new connection with new user in Oracle SQL Developer
pred 8 rokmi
Sequence in SQL and PLSQL || Sequence in Oracle SQL
Sequence in SQL and PLSQL || Sequence in Oracle SQL
pred 2 rokmi
Inserting Data From Another Table (Introduction to Oracle SQL)
Inserting Data From Another Table (Introduction to Oracle SQL)
pred 5 rokmi
SQL Tutorial - 13: Inserting Data Into a Table From Another Table
SQL Tutorial - 13: Inserting Data Into a Table From Another Table
pred 9 rokmi
how to update column in sql table. update with join in sql table. PART 9
how to update column in sql table. update with join in sql table. PART 9
pred 5 rokmi
Create query in Tamil | Oracle SQL Tutorial
Create query in Tamil | Oracle SQL Tutorial
pred 2 rokmi
SQL Developer why   ?  And   How  to  install  , update  and  use   ?   - Tamil
SQL Developer why ? And How to install , update and use ? - Tamil
pred 3 rokmi
Oracle SQL - Triggers Part 02
Oracle SQL - Triggers Part 02
pred 3 rokmi
Oracle SQL Interview - Update row
Oracle SQL Interview - Update row
pred 5 rokmi
Insert and Update Rows|Oracle SQL
Insert and Update Rows|Oracle SQL
pred rokom
1 SQL UPDATE COMMAND  LECTURE 09
1 SQL UPDATE COMMAND LECTURE 09
pred 3 rokmi
Oracle update command - beginner
Oracle update command - beginner
pred 12 rokmi
0A Oracle SQL PLSQL 12C Tutorial 4   Create New User HD
0A Oracle SQL PLSQL 12C Tutorial 4 Create New User HD
pred 2 rokmi
Oracle SQL DATA MANIPULATION LANGUAGE in tamil
Oracle SQL DATA MANIPULATION LANGUAGE in tamil
pred 2 rokmi
SQL and PLSQL INTERVIEW 10- Swapping the values of Column WITH SINGLE UPDATE
SQL and PLSQL INTERVIEW 10- Swapping the values of Column WITH SINGLE UPDATE
pred 5 rokmi
DML Commands in SQL
DML Commands in SQL
pred 3 rokmi
PL/SQL Tutorial  3 :  Oracle PLSQL Procedure with example
PL/SQL Tutorial 3 : Oracle PLSQL Procedure with example
pred 5 rokmi
Update Statement in Sql | Update in oracle | Update in Sql | Update Statement in Sql for Multiple
Update Statement in Sql | Update in oracle | Update in Sql | Update Statement in Sql for Multiple
pred 5 rokmi
« Predchádzajúci
Ďalšie »
This question has 1 odpoveď in English, to read them log in to your account.
Solution / Answer
Justin Cave
Justin Cave
11 august 2011 в 7:05
2011-08-11T19:05:21+00:00
Viac na
Zdroj
Upraviť
#13152866

Toto sa nazýva korelovaná aktualizácia

UPDATE table1 t1
   SET (name, desc) = (SELECT t2.name, t2.desc
                         FROM table2 t2
                        WHERE t1.id = t2.id)
 WHERE EXISTS (
    SELECT 1
      FROM table2 t2
     WHERE t1.id = t2.id )

Za predpokladu, že výsledkom spojenia je pohľad so zachovaným kľúčom, môžete tiež

UPDATE (SELECT t1.id, 
               t1.name name1,
               t1.desc desc1,
               t2.name name2,
               t2.desc desc2
          FROM table1 t1,
               table2 t2
         WHERE t1.id = t2.id)
   SET name1 = name2,
       desc1 = desc2
482
0
Artificial intelligence to parse product page
productapi.dev
 Yahia
Yahia
11 august 2011 в 6:08
2011-08-11T18:08:49+00:00
Viac na
Zdroj
Upraviť
#13152865

vyskúšajte

UPDATE Table1 T1 SET
T1.name = (SELECT T2.name FROM Table2 T2 WHERE T2.id = T1.id),
T1.desc = (SELECT T2.desc FROM Table2 T2 WHERE T2.id = T1.id)
WHERE T1.id IN (SELECT T2.id FROM Table2 T2 WHERE T2.id = T1.id);
18
0
Artificial intelligence to parse product page
productapi.dev
 ant
ant
3 október 2012 в 11:40
2012-10-03T11:40:32+00:00
Viac na
Zdroj
Upraviť
#13152868

Tu sa zdá byť ešte lepšia odpoveď s klauzulou 'in', ktorá umožňuje viacero kľúčov pre spojenie:

update fp_active set STATE='E', 
   LAST_DATE_MAJ = sysdate where (client,code) in (select (client,code) from fp_detail
  where valid = 1) ...

Celý príklad je tu: http://forums.devshed.com/oracle-development-96/how-to-update-from-two-tables-195893.html

Hovädzie mäso spočíva v tom, že stĺpce, ktoré chcete použiť ako kľúč, máte v zátvorkách v klauzule where pred 'in' a príkaz select s rovnakými názvami stĺpcov máte v zátvorkách. where (column1,column2) in ( select (column1,column2) from table where "the set I want" );

 ant
ant
Edited answer 8 február 2013 в 8:27
8
0
Pridať otázku
Kategórie
Všetky
Technológia
Kultúra / Rekreácia
Život / Umenie
Veda
Profesionálne
Obchod
Používatelia
Všetky
New
Popular
1
Анна Литвиненко
Registered pred dňom
2
Inessa bu
Registered pred mesiacom
3
Denis Babushkin
Registered pred mesiacom
4
asakuno asakuno
Registered pred mesiacom
5
aldo salerno
Registered pred mesiacom
Artificial intelligence to parse product page
productapi.dev
DE
EL
ES
FI
FR
ID
IT
JA
LV
NL
NO
PT
RU
SK
TR
UK
ZH
© kzen.dev 2023
Zdroj
stackoverflow.com
na základe licencie cc by-sa 3.0 s uvedením autora