Ver Mensaje Individual
  #1  
Antiguo 26-09-2006
against against is offline
Miembro
 
Registrado: abr 2006
Posts: 12
Reputación: 0
against Va por buen camino
Angry ¿ Fallo en MySQL ?

Buenas, hoy haciendo una consulta me encontrado con un problema, hecho dos consultas que se suponen que son similares pero que me devuelven dos resultados diferentes:

Código SQL [-]
select C.imei from linartstr C where C.imei not in (select B.imei from linarticulo A, linartstr B where A.imei = B.imei)


Esta consulta me devuelve los valores que necesitaba

Código SQL [-]
select C.imei from linartstr C where C.imei not in (select A.imei from linarticulo A)


Pero esta no, queria de la tabla linartstr obtener los imei que no estan en linarticulo.

¿Se supone que las consultas no son iguales ?
¿O es un fallo de MySQL ?

haciendo un explain de las dos consultas obtengo lo siguiente:

La 1º consulta:

1, 'PRIMARY', 'C', 'ALL', '', '', , '', 189, 'Using where'
2, 'DEPENDENT SUBQUERY', 'A', 'ALL', '', '', , '', 517, ''
2, 'DEPENDENT SUBQUERY', 'B', 'ALL', '', '', , '', 189, 'Using where'


La 2º consulta:

1, 'PRIMARY', 'C', 'ALL', '', '', , '', 189, 'Using where'
2, 'DEPENDENT SUBQUERY', 'A', 'ALL', '', '', , '', 517, 'Using where'

Pero me quedo igual leyendo esto :P

Nose si os haria falta mas informacion para comprender las consulta, si es asi os dare mas cosas.

Añadir que las tabla tienen 199 registros (linartstr) y 513 (linarticulo).

Haciendo:
Código SQL [-]
select B.imei from linarticulo A, linartstr B where A.imei = B.imei
me devuelve 189, con lo que las dos consultas de arriba deverian devolver 10 registros.

Un saludo.

Última edición por against fecha: 26-09-2006 a las 19:52:00.
Responder Con Cita