Ver Mensaje Individual
  #9 (permalink)  
Antiguo 26/05/2010, 07:12
Avatar de huesos52
huesos52
Colaborador
 
Fecha de Ingreso: febrero-2009
Ubicación: Manizales - Colombia
Mensajes: 5.980
Antigüedad: 15 años, 2 meses
Puntos: 360
Respuesta: La subconsulta de una sola fila devuelve más de una fila

Cita:
Iniciado por juanla Ver Mensaje
Me alegro que lo solucionaras, si te quedo la duda

Código SQL:
Ver original
  1. SELECT REF_COCINA FROM COMPRAR WHERE DNI_CLIENTE LIKE (SELECT DNI FROM CLIENTE) ;
  2. SELECT REF_COCINA FROM COMPRAR WHERE DNI_CLIENTE IN (SELECT DNI FROM CLIENTE) ;

IN sirve para buscar más de un resultado, tenlo en cuenta, "=" haría el mismo efecto que like en tu caso pero la consulta con IN consumirá mucho más (para hacer software hay que tenerlo en cuenta) te digo esto para que lo tengas más claro y queda mejor usar = o like siempre que puedas ;) mejor que los in.

PD: Solo quería explicarte que son comparadores distintos, ya se que te respondieron
Juanla... si no estoy mal, el problema de plantala era que el campo a comparar, debía hacerlo ante múltiples valores y esto no es posible ni con el operador like ni =, ya que se viola la estructura cartesiana de la tabla al tener un numero de registros superior a 1 haciendo imposible comparar de este modo con un conjunto de registros.

El operador IN tiene el mismo comportamiento que si se hiciesen múltiples comparaciones con OR. Por eso en este caso, creo que es necesario.

saludos
__________________
Without data, You are another person with an opinion.
W. Edwads Deming