Ver Mensaje Individual
  #2 (permalink)  
Antiguo 08/03/2009, 07:47
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, 4 meses
Puntos: 2658
Respuesta: select multiples tablas con nombre campo repetido

Si lo que quieres decir es que ese campo ID es el que realiza la relación entre las tablas, entonces lo que debes usar es JOIN, o mejor aún, INNER JOIN:
Código sql:
Ver original
  1. SELECT *
  2. FROM tabla1 INNER JOIN tabla2 USING(id) INNER JOIN tabla3 USING(id);

- INNER JOIN hace que la consulta devuelva todos los campos de Tabla1 que coincidan en el o los campos listados en el USING().
- Esta cláusula requiere que los campos comparados tengan el mismo nombre en ambas tablas.
- Si los campos no tienen el mismo nombre, se debe especificar campo por campo de esta forma:
Código sql:
Ver original
  1. SELECT *
  2. FROM tabla1 t1  
  3.     INNER JOIN tabla2 t2 ON t1.id = t2.id
  4.     INNER JOIN tabla3 t3 ON t1.id = t3.id;

- Si deben concidir más de un campo se usa también la cláusula AND:
Código sql:
Ver original
  1. SELECT *
  2. FROM tabla1 t1  
  3.     INNER JOIN tabla2 t2 ON t1.id = t2.id AND t1.campo2 = t2.campo3
  4.     INNER JOIN tabla3 t3 ON t1.id = t3.id;
- Al ejecutar este INNER JOIN los campos cuyos nombres aparecen en el USING sólo aparecerán una vez, no así cuando usas ON. En ese caso aparecerá dos veces.
- La única solución que te queda para evitar la repetición de columnas usando ON es determinando qué columnas aparecerán, y no usando "*". De todos modos te aclaro que se debe evitar usar "SELECT * ..." en todos los casos, ya que es la forma más ineficiente de consulta. Sólo debe invocarse si realmente vas a usar TODOS los datos. SIno estás trayendo "basura" por la red, que en definitiva vas a descartar.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)