ďťż
 
[db2] Update sql posiłkowany danymi z innej tabeli ďťż
 
[db2] Update sql posiłkowany danymi z innej tabeli
Zobacz wiadomości
 
Cytat
A gdyby tak się wedrzeć na umysłów górę, / Gdyby stanąć na ludzkich myśli piramidzie, / I przebić czołem przesądów chmurę, / I być najwyższą myślą wcieloną. . . Juliusz Słowacki, Kordian
Indeks BCB i MySQL subiekt gt fototapeta
 
  Witamy

[db2] Update sql posiłkowany danymi z innej tabeli



Jolanta Pawelska - 21-12-2005 12:14
[db2] Update sql posiłkowany danymi z innej tabeli
  Problem wygląda mniej więcej tak: mam jakąś tabelę IN z przygotowanymi
danymi postaci (id, wartosc1, wartosc2, ...)

Chcę teraz wykonać update sql jakiejś innej tabeli T, gdzie updatuję rekordy
w sposób taki: dopasowuję rekordy po id a udatuje wybrane (ustalane w
zapytaniu
update) kolumny wartościami z tej tabeli. Czyli chcę wykonać duży update
tabeli T
wykorzystując dane z tabeli IN, gdzie w przybliżeniu tabela IN zawiera jakiś
podzbiór kolumn
tabeli T, w tym klucze główne.

Interesuje mnie czy takie zapytanie da się łatwo wykonać bez mnożenia niemal
identycznych
podzapytań dla każdej modyfikowanej kolumny. Być może jest na tę okazję
jakas specjalna
składnia uzywająca "with" albo cos w tym rodzaju.

Pozdrawiam
jola





Filip Sielimowicz - 21-12-2005 12:14

 
Użytkownik "Jolanta Pawelska" <jolanta@hands.com.pl> napisał w wiadomości
news:dnosck$5n5$1@nemesis.news.tpi.pl...
> Problem wygląda mniej więcej tak: mam jakąś tabelę IN z przygotowanymi
> danymi postaci (id, wartosc1, wartosc2, ...)
>
> Chcę teraz wykonać update sql jakiejś innej tabeli T, gdzie updatuję rekordy
> w sposób taki: dopasowuję rekordy po id a udatuje wybrane (ustalane w
> zapytaniu
> update) kolumny wartościami z tej tabeli. Czyli chcę wykonać duży update
> tabeli T
> wykorzystując dane z tabeli IN, gdzie w przybliżeniu tabela IN zawiera jakiś
> podzbiór kolumn
> tabeli T, w tym klucze główne.
>
> Interesuje mnie czy takie zapytanie da się łatwo wykonać bez mnożenia niemal
> identycznych
> podzapytań dla każdej modyfikowanej kolumny.

Nie wiem jak w innych bazach, ale w db2 jest akurat bardzo wygodna konstrukcja,
która rozwiązuje ten problem:

update T t

set (c0, c1, ...)=(

select cin0, cin1, ...

from INN inn

where t.id=inn.id

)




Filip Sielimowicz - 21-12-2005 12:14

 
Użytkownik "Filip Sielimowicz" <sielim@poczta.onet.pl> napisał w wiadomości
news:dnoujj$gmk$1@news.onet.pl...
> Nie wiem jak w innych bazach, ale w db2 jest akurat bardzo wygodna konstrukcja,
> która rozwiązuje ten problem:
>
> update T t
>
> set (c0, c1, ...)=(
>
> select cin0, cin1, ...
>
> from INN inn
>
> where t.id=inn.id
>
> )

.... a żeby było już super tak jak trzeba, to:

update T t
set (c0, c1, ...)=(
select cin0, cin1, ...
from INN inn
where t.id=inn.id
) where id in (select id from INN)
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • effulla.pev.pl
  • comp
    jak to =?ISO-8859-2?Q?zrobi=E6=2E=2E=2E=3F_TSQL_sql_server?==?ISO-8859-2?Q?_?= Jak =?windows-1250?Q?pobra=E6_szacowan=B9_wielko=9C=E6_zbiory_wy nikowego_w_MS?==?windows-1250?Q?_SQL_2005=3F?= =?iso-8859-2?Q?=5BMS_SQL=5D_Czy_mo=BFna_wywo=B3a=E6_funkcje_t ylko_raz_dla?==?iso-8859-2?Q?_ca=B3ego_zbioru_=BCr=F3d=B3owego=3F?= [MSSQL] =?ISO-8859-2?Q?zgodno=B6ci_z_licencjami_Microsoft_?==?ISO-8859-2?Q?SQL_Server?= =?ISO-8859-2?Q?k=B3opot_z_uruchomieniem_MY_SQL_dla_C?==?ISO-8859-2?Q?MS_i_CRM_na_Fedora_Core_3?= [MSSQL] ACCESS - SQL =?ISO-8859-2?Q?B=B3ad_w_konwersji_lic?==?ISO-8859-2?Q?zb?= =?iso-8859-2?Q?=5Bmssql=5D_Zapytania_rekurencyjne__-_czy_sk=B3adnia_sql?==?iso-8859-2?Q?_co=B6_takiego_przewiduje_=3F?= [Oracle PL/SQL] Cursor i zapis =?ISO-8859-2?Q?rekord=F3w_do_?==?ISO-8859-2?Q?kolejnych_plik=F3w?= =?iso-8859-2?Q?=5BMySQL=5D_Co_minimalnie_potrzebne_zeby_mie=E 6_klienta_My?==?iso-8859-2?Q?SQL_na_Linuxie=3F?= [newbie] MS SQL - praca =?ISO-8859-2?Q?jednocze=B6nie_na_2_?==?ISO-8859-2?Q?bazach_=28linkowanie_=3F=29?=
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • red-hacjenda.opx.pl
  • Cytat

    Decede mihi sole - nie zasłaniaj mi słonca.
    Gdy kogoś kochasz, jesteś jak stworzyciel świata - na cokolwiek spojrzysz, nabiera to kształtu, wypełnia się barwą, światłem. Powietrze przytula się do ciebie, choćby był mróz, a ty masz w sobie tyle radości, że musisz ją rozdawać wokoło, bo się w tobie nie mieści
    Hoc fac - tak czyń.
    A tergo - od tyłu; z tyłu.
    I czarne włosy posiwieją. Safona

    Valid HTML 4.01 Transitional

    Free website template provided by freeweblooks.com