Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/12/2007, 05:23
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Re: interseccion en mysql

Me refería a que si usase esa consulta en una tabla real con datos, como cada select me devovlería el mismo conjunto de datos la intersección resultante en vez de ser A interseccion B intersección C, sería A intersección A interesección A.

En cambio esto se repite 3 veces:
SELECT filtros.valor_filtro, AB.* FROM filtros, AB WHERE AB.zona = filtros.valor_filtro AND idPersona='1' AND nom_filtro='primero'

La intersección tiene sentido cuando los conjuntos de intersección contienen diferencias entre ellos y buscas solamente los elementos comunes entre todos.

En otras palabras, me refería a que no podía usar tu ejemplo para construir una consulta de lo que quería explicar porque no ser vería a simple vista cómo era el tema. Para ejempificar lo que digo, por lo menos deberían cambiar los nombres de las tablas que se consultan.

En cuanto a si es conveniente el USING o el ON, como te decía arriba, el USING requiere que el nombre de los campos iguaados sea el mismo en ambas tablas, de lo contrario hay que usar ON, que sí te permite vincular campos con nombres distintos, como es el caso en tu ejemplo:

SELECT filtros.valor_filtro, AB.*
FROM filtros1 INNER JOIN AB
ON AB.zona = filtros.valor_filtro AND abidPersona='1' AND filtros.nom_filtro='primero'