Consultas de actualización

15/04/2004 - 20:55 por Jorge A S | Informe spam
Hola a todos, estoy tratando de hacer una consulta de
actualización de datos que actualice los campos de una
tabla de acuerdo a los que existen en otra a travez de una
relación "INNER JOIN" y me doy cuenta que no funciona, la
única manera que me permite es actualización de un valor
fijo a todos los campos, esta es la consulta que armé:

UPDATE
tabla1 INNER JOIN tabla2
ON tabla1.campo1 = tabla2.campo1
SET tabla1.campo2 = tabla2.campo2

Como esto no funciona, alguien sabe como hay que armar la
funcione para que se pouede hacer esta acción ?
Desde ya les agardezco, espero que se haya entendido.

Preguntas similare

Leer las respuestas

#1 Maximiliano D. A.
15/04/2004 - 21:06 | Informe spam
hola, es que lo deberias hacer asi:

UPDATE set tabla1.campo2=tabla2.campo2
from
tabla1 INNER JOIN tabla2
ON tabla1.campo1 = tabla2.campo1
SET tabla1.campo2 = tabla2.campo2

0

Suerte




Salu2
Maxi

Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET

MSN:
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Jorge A S" escribió en el mensaje
news:1d19f01c4231b$29338d30$
Hola a todos, estoy tratando de hacer una consulta de
actualización de datos que actualice los campos de una
tabla de acuerdo a los que existen en otra a travez de una
relación "INNER JOIN" y me doy cuenta que no funciona, la
única manera que me permite es actualización de un valor
fijo a todos los campos, esta es la consulta que armé:

UPDATE
tabla1 INNER JOIN tabla2
ON tabla1.campo1 = tabla2.campo1
SET tabla1.campo2 = tabla2.campo2

Como esto no funciona, alguien sabe como hay que armar la
funcione para que se pouede hacer esta acción ?
Desde ya les agardezco, espero que se haya entendido.




Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.655 / Virus Database: 420 - Release Date: 08/04/2004
Respuesta Responder a este mensaje
#2 Eladio Rincón
15/04/2004 - 21:18 | Informe spam
Un ejemplo:

create table t1 ( id int, v char(1))
go
insert into t1 select 1, 'a'
insert into t1 select 2, 'b'
insert into t1 select 3, 'c'
insert into t1 select 4, 'd'
go
create table t2 ( id int, v char(1))
go
insert into t2 select 1, '-'
insert into t2 select 2, '-'
insert into t2 select 3, '-'
insert into t2 select 4, '-'
go
update t2
set v = t1.v
from t2 inner join t1
on t1.id = t2.id
go
select t1.id, t1.v, t2.v
from t1 inner join t2 on t1.id = t2.id


Saludos,
Eladio

Jorge A S wrote:
Hola a todos, estoy tratando de hacer una consulta de
actualización de datos que actualice los campos de una
tabla de acuerdo a los que existen en otra a travez de una
relación "INNER JOIN" y me doy cuenta que no funciona, la
única manera que me permite es actualización de un valor
fijo a todos los campos, esta es la consulta que armé:

UPDATE
tabla1 INNER JOIN tabla2
ON tabla1.campo1 = tabla2.campo1
SET tabla1.campo2 = tabla2.campo2

Como esto no funciona, alguien sabe como hay que armar la
funcione para que se pouede hacer esta acción ?
Desde ya les agardezco, espero que se haya entendido.
Respuesta Responder a este mensaje
#3 Jose Mariano Alvarez \(MUG\)
15/04/2004 - 21:23 | Informe spam
UPDATE tabla1
SET
campo2=tabla2.campo2
from tabla2
where
tabla1.campo1 = tabla2.campo1
and tabla1.campo2 = tabla2.campo2

Jose Mariano Alvarez
Comunidad de base de datos
Grupo de Usuarios Microsoft
www.mug.org.ar



"Maximiliano D. A." wrote in message
news:
hola, es que lo deberias hacer asi:

UPDATE set tabla1.campo2=tabla2.campo2
from
tabla1 INNER JOIN tabla2
ON tabla1.campo1 = tabla2.campo1
SET tabla1.campo2 = tabla2.campo2

0

Suerte




Salu2
Maxi

Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET

MSN:
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Jorge A S" escribió en el mensaje
news:1d19f01c4231b$29338d30$
Hola a todos, estoy tratando de hacer una consulta de
actualización de datos que actualice los campos de una
tabla de acuerdo a los que existen en otra a travez de una
relación "INNER JOIN" y me doy cuenta que no funciona, la
única manera que me permite es actualización de un valor
fijo a todos los campos, esta es la consulta que armé:

UPDATE
tabla1 INNER JOIN tabla2
ON tabla1.campo1 = tabla2.campo1
SET tabla1.campo2 = tabla2.campo2

Como esto no funciona, alguien sabe como hay que armar la
funcione para que se pouede hacer esta acción ?
Desde ya les agardezco, espero que se haya entendido.




Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.655 / Virus Database: 420 - Release Date: 08/04/2004


Respuesta Responder a este mensaje
#4 Maximiliano D. A.
15/04/2004 - 21:26 | Informe spam
por Dios que carajo escribi :( hoy no escribo masssss jejej


UPDATE tabla1
set tabla1.campo2=tabla2.campo2
from
tabla1 INNER JOIN tabla2
ON tabla1.campo1 = tabla2.campo1

=

Salu2
Maxi

Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET

MSN:
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Maximiliano D. A." escribió en el
mensaje news:
hola, es que lo deberias hacer asi:

UPDATE set tabla1.campo2=tabla2.campo2
from
tabla1 INNER JOIN tabla2
ON tabla1.campo1 = tabla2.campo1
SET tabla1.campo2 = tabla2.campo2

0

Suerte




Salu2
Maxi

Buenos Aires Argentina
Desarrollador Microsoft 3 Estrellas .NET

MSN:
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Jorge A S" escribió en el mensaje
news:1d19f01c4231b$29338d30$
Hola a todos, estoy tratando de hacer una consulta de
actualización de datos que actualice los campos de una
tabla de acuerdo a los que existen en otra a travez de una
relación "INNER JOIN" y me doy cuenta que no funciona, la
única manera que me permite es actualización de un valor
fijo a todos los campos, esta es la consulta que armé:

UPDATE
tabla1 INNER JOIN tabla2
ON tabla1.campo1 = tabla2.campo1
SET tabla1.campo2 = tabla2.campo2

Como esto no funciona, alguien sabe como hay que armar la
funcione para que se pouede hacer esta acción ?
Desde ya les agardezco, espero que se haya entendido.




Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.655 / Virus Database: 420 - Release Date: 08/04/2004







Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.655 / Virus Database: 420 - Release Date: 08/04/2004
Respuesta Responder a este mensaje
#5 Javier Loria
15/04/2004 - 22:06 | Informe spam
Hola:
Siguiente el ejemplo de Eladio, tres sintaxis son equivalentes y
soportadas por MS SQL:
== Opcion 1
UPDATE T2
SET V=T1.V
FROM T2 INNER JOIN T1
ON T1.id = t2.id

UPDATE T2
SET v=T1.V
FROM T1
WHERE T2.ID=T1.ID

UPDATE T2
SET V=(SELECT V FROM T1 WHERE T1.ID=T2.ID)
== La primera opcion es a mi parecer la mas legible, con frecuencia la mas
rapidoa, y la mejor concuerda con los SELECTS; la tercera es la unica
ANSI. (Podria ser que la 2 tambien, pero estoy casi seguro que no). La 1
definitivamente no es ANSI.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Eladio Rincón escribio:
Un ejemplo:

create table t1 ( id int, v char(1))
go
insert into t1 select 1, 'a'
insert into t1 select 2, 'b'
insert into t1 select 3, 'c'
insert into t1 select 4, 'd'
go
create table t2 ( id int, v char(1))
go
insert into t2 select 1, '-'
insert into t2 select 2, '-'
insert into t2 select 3, '-'
insert into t2 select 4, '-'
go
update t2
set v = t1.v
from t2 inner join t1
on t1.id = t2.id
go
select t1.id, t1.v, t2.v
from t1 inner join t2 on t1.id = t2.id


Saludos,
Eladio

Jorge A S wrote:
Hola a todos, estoy tratando de hacer una consulta de
actualización de datos que actualice los campos de una
tabla de acuerdo a los que existen en otra a travez de una
relación "INNER JOIN" y me doy cuenta que no funciona, la
única manera que me permite es actualización de un valor
fijo a todos los campos, esta es la consulta que armé:

UPDATE
tabla1 INNER JOIN tabla2
ON tabla1.campo1 = tabla2.campo1
SET tabla1.campo2 = tabla2.campo2

Como esto no funciona, alguien sabe como hay que armar la
funcione para que se pouede hacer esta acción ?
Desde ya les agardezco, espero que se haya entendido.
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida