Ver Mensaje Individual
  #8 (permalink)  
Antiguo 23/09/2008, 11:13
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: 17 años, 2 meses
Puntos: 2658
Respuesta: Consulta simultánea en dos tablas no va en php

Es básico:
Si quieres relacionar dos tablas deben forzosamente tener un campo al menos que las relacione. El JOIN (o al coma según el manual de MySQL) funciona de esa forma: Usa los campos del mismo nombre como pivote y relaciona los registrs de una y otra tabla igualando los contenido del/los campo/s usados para relacionar.
La cosa tiene algunas consideraciones
1. Los campos deben forzosamente tener el mismo nombre o de lo contrario hay que usar la cláusula ON como en "ON campotabla1 = campotabla2".
2. Los campos deben forzosamente contener datos relacionados y del mismo tipo.
3. Si no existen puntos relacionados entre los registros de una y otra tabla, puede el uso de JOIN o la coma sin ON puede producir el efecto del NATURAL JOIN, esto es, el producto cartesiano (todos con todos), lo que es la peor forma de resolver una consulta.

El uso del UNION tiene, por su parte dos condiciones básicas:
1. La cantidad de campos debe ser igual en cada SELECT unido. Esto significa que la cantidad de columnas devuelta por cada uno debe ser la misma.
2. Es necesario que lso campos sean del mismo tipo en las mismas ubicaciones, o sino el resultado puede ser absolutamente inconsistente (como el famos y viejo dicho de "caballos con manzanas", terminarías uniendo campos DATETIME con campos SMALLINT, por ejemplo).
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)