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

Buscar no coincidentes en mysql

Estas en el tema de Buscar no coincidentes en mysql en el foro de Mysql en Foros del Web. Estimados Tengo la siguiente forma de busqueda que se encarga de encontrar los elementos de la tabla productos que segun su codigo el mismo coincida ...
  #1 (permalink)  
Antiguo 08/08/2011, 07:10
 
Fecha de Ingreso: julio-2010
Mensajes: 59
Antigüedad: 13 años, 9 meses
Puntos: 0
Buscar no coincidentes en mysql

Estimados

Tengo la siguiente forma de busqueda que se encarga de encontrar los elementos de la tabla productos que segun su codigo el mismo coincida con el codigo de la tabla precios.

$result = mysql_query("SELECT * FROM productos INNER JOIN precio ON productos.codigo = precio.precio ORDER BY nombre", $link);

Ahora yo lo que necesito es hacer la busqueda opuesta, es decir que me de los productos en los cuales no hay coincidencia y de esa forma sabiendo cuales son podre ponerles el codigo para que alfin coincidan.
Espero que puedan ayudarme, saludos y gracias.
  #2 (permalink)  
Antiguo 08/08/2011, 08:09
Colaborador
 
Fecha de Ingreso: enero-2007
Ubicación: México
Mensajes: 2.097
Antigüedad: 17 años, 3 meses
Puntos: 447
Respuesta: Buscar no coincidentes en mysql

Hola pablojdm2010:

No sé si entendí bien qué es lo que necesitas hacer, pero según entendí necesitarías encontrar todos los registros de tu tabla productos que no tengan un registro asociado en la tabla precio correcto???

Según tu consulta, tus tablas están relacionadas por los campos CODIGO y PRECIO:

Código:
productos.codigo = precio.precio
Hay varias formas de obtener esto, podrías utilizar las sentencias NOT IN o NOT EXISTS y armar una subconsulta más o menos así.

Código:
SELECT * FROM productos 
WHERE codigo NOT IN (SELECT precio FROM precio)

SELECT * FROM productos T1 
WHERE NOT EXISTS (SELECT * FROM precio T2 WHERE T1.codigo = T2.precio)
o si lo prefieres puedes hacer un LEFT JOIN entre tus tablas y regresar sólo aquellas donde el campo PRECIO sea nulo:

Código:
SELECT * FROM productos T1 LEFT JOIN precio T2 ON T1.codigo = T2.precio 
WHERE T2.precio IS NULL
ORDER BY nombre
Dale un vistazo al código para ver si es lo que necesitas.

Saludos
Leo.
  #3 (permalink)  
Antiguo 08/08/2011, 13:39
 
Fecha de Ingreso: julio-2010
Mensajes: 59
Antigüedad: 13 años, 9 meses
Puntos: 0
Respuesta: Buscar no coincidentes en mysql

Si es lo que estaba preguntando, no solo respondiste mi pregunta casi enseguida que la hice, sino que me diste varias opciones SOS UN GRANDE!!!!!
Muchas gracias me diste una gran ayuda.

Etiquetas: join, query, select, sql, tabla
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 18:07.