Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Subconsulta valores múltiples

Estas en el tema de Subconsulta valores múltiples en el foro de SQL Server en Foros del Web. ¿Se puede en Sql Server 2000 hacer la siguiente consulta?: select * from tabla1 where (campo1,campo2) in (select campo1,campo2 from tabla2) Gracias de antemano....
  #1 (permalink)  
Antiguo 07/09/2006, 11:22
Avatar de cableh  
Fecha de Ingreso: diciembre-2004
Mensajes: 54
Antigüedad: 19 años, 4 meses
Puntos: 0
Subconsulta valores múltiples

¿Se puede en Sql Server 2000 hacer la siguiente consulta?:

select * from tabla1
where (campo1,campo2) in (select campo1,campo2 from tabla2)


Gracias de antemano.
  #2 (permalink)  
Antiguo 07/09/2006, 16:02
Avatar de goteen_mx  
Fecha de Ingreso: abril-2005
Ubicación: D.F.
Mensajes: 403
Antigüedad: 19 años, 1 mes
Puntos: 37
Si se puede hacer pero por separado o tambien usando el Exist

select * from tabla1
where campo1 in (select campo1 from tabla2) "and" u "or" depende la consulta campo2 in (select campo2 from tabla2)

aunque seria muy tardada, tal vez seria mejor utilizar un inner join

bye saludos
  #3 (permalink)  
Antiguo 07/09/2006, 16:30
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
No, necesitas JOINs por fuerza.

La solución de 2 subquerys que te dice goteen tampoco funcionará porque no fuerzas la existencia del par, sino solo que cada uno de los miembros exista (no necesariamente juntos en el mismo registro)
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
  #4 (permalink)  
Antiguo 07/09/2006, 17:14
Avatar de goteen_mx  
Fecha de Ingreso: abril-2005
Ubicación: D.F.
Mensajes: 403
Antigüedad: 19 años, 1 mes
Puntos: 37
pues no se que es lo que el quiera, por que si esta ocupando un IN es por que necesita saber si estan en la otra tabla unicamente, si no de otro modo con un simple join lo haria cuando a.campo1=b.campo1 y a.campo2=b.campo2 y asi si forzarias que solo te los mostrara si existieran pares en ambas tablas

bye
  #5 (permalink)  
Antiguo 07/09/2006, 17:54
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
pues a mi me parece que ese IN es para buscar pares...
jejeje

un saludo...
  #6 (permalink)  
Antiguo 08/09/2006, 03:39
Avatar de cableh  
Fecha de Ingreso: diciembre-2004
Mensajes: 54
Antigüedad: 19 años, 4 meses
Puntos: 0
Efectivamente buscaba pares.

Al final he solucionado el problema (la consulta es bastante compleja) con un left join con los dos campos y con un IN con uno.

Gracias a todos por contestar.
Un saludo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:01.