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

Consulta que me trae de cabeza

Estas en el tema de Consulta que me trae de cabeza en el foro de Mysql en Foros del Web. Hola, Llevo un rato dandole vueltas, pero no hay manera... Creo que es una verdadera CHORRADA, peroooooooo MySQL no es que sea precisamente lo mio ...
  #1 (permalink)  
Antiguo 09/01/2011, 01:52
Avatar de popobcn
Moderador
 
Fecha de Ingreso: noviembre-2006
Ubicación: Cerdanyola del Vallès
Mensajes: 3.888
Antigüedad: 13 años, 3 meses
Puntos: 1141
Consulta que me trae de cabeza

Hola,

Llevo un rato dandole vueltas, pero no hay manera... Creo que es una verdadera CHORRADA, peroooooooo MySQL no es que sea precisamente lo mio aissss... Os explico:

Tengo una tabla con dos campos tipo VARCHAR en la que pueden existir o no coincidencias de este tipo (negrita):

Perro - Gato
Gato - Perro

Rata - Canario
Canario - Perro
Loro - Perro


Ahora me gustaria listar los registros - por ejemplo - de Perro que aparezcan en la 2ª columna pero que no tengan una coincidencia tipo "Perro - Gato / Gato - Perro" .oO(Lo marco en verde, por que asi estamos a estas horas de la mañana xD)

Puuuuuff espero haberme eplicado relativamente bien... Y que, por supuesto; alguién tenga la bondad de echarme una mano y que no sea al cuello

Gracias y saludos
__________________
Consultor SEO / WPO
[EXP] Fuego de Vida ->perfiles-msn.com
  #2 (permalink)  
Antiguo 09/01/2011, 05:29
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 11 años, 10 meses
Puntos: 300
Respuesta: Consulta que me trae de cabeza

popobcn,
imagino que tienes un id en esa tabla. Te daré una (seguro que hay otras) solución SQL con subconsulta dentro de la cual cruzo la tabla consigo misma y luego uno dos veces mediante UNION ALL para obtener los id que quier excluir. Seguramente con procedimiento almacenado sería mejor y más profesional, pero te doy lo que se me ha ocurrido por ahora:

SELECT * FROM tutabla WHERE tutabla.campo2 = 'perro' AND id NOT IN(SELECT t1.id FROM `tutabla` t1 INNER JOIN tutabla t2 ON (t1.campo1= t2.campo2 AND t1.campo2 = t2.campo1 AND t1.campo2 = 'perro')
UNION ALL
SELECT t2.id FROM `tutabla` t1 INNER JOIN tutabla t2 ON (t1.campo1= t2.campo2 AND t1.campo2 = t2.campo1 AND t1.campo2 = 'perro'))
  #3 (permalink)  
Antiguo 09/01/2011, 09:31
Avatar de popobcn
Moderador
 
Fecha de Ingreso: noviembre-2006
Ubicación: Cerdanyola del Vallès
Mensajes: 3.888
Antigüedad: 13 años, 3 meses
Puntos: 1141
Respuesta: Consulta que me trae de cabeza

Impresionante! .oO(Neofito a los mandos) Me acabas de salvar la tarde enteras funciona a las mil maravillas

Cita:
La consulta tardó 0.0049 seg
Muchas gracias por mano apañero.

PD.: Karmita al canto señor!
__________________
Consultor SEO / WPO
[EXP] Fuego de Vida ->perfiles-msn.com

Etiquetas: Ninguno
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 04:31.