Ver Mensaje Individual
  #9  
Antiguo 29-03-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Reputación: 30
jachguate Va por buen camino
Hola.

El problema de lo planteado por el amigo cadetill, es que pueden colarse combinaciones no deseadas.

Supongamos que tenemos...

Código:
  Tabla1

  Nombre   Apellido
  ======   ========
  juan     perez
  juan     gomez
  jose     juarez
  jose     gomez
  juan     castillo
  
  Tabla2

  Nombre   Apellido
  ======   ========
  juan     perez
  jose     juarez
  pedro    gomez
la opción mia, concatenando los campos filtrará asi:

Código:
select *
  from tabla1
 where nombre||apellido in (
         select nombre||apellido
           from tabla2)

  Query1

  Nombre   Apellido
  ======   ========
  juan     perez
  juan     gomez
  jose     juarez
  jose     gomez
  juan     castillo
en cambio la opción de cadetill filtraría asi:

Código:
select *
  from tabla1
 where nombre in (
         select nombre
           from tabla2)
   and apellido in (
         select apellido
           from tabla2)


  Query2

  Nombre   Apellido
  ======   ========
  juan     perez
  juan     gomez
  jose     juarez
  jose     gomez
  juan     castillo
Dependerá de las necesidades cual de las dos sea aplicable, aunque en este caso, me parece que la concatenación es la única opción... y vale la pena establecer la diferencia.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita