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 originalSELECT *
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 originalSELECT *
FROM tabla1 t1
INNER JOIN tabla2 t2 ON t1.id = t2.id
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 originalSELECT *
FROM tabla1 t1
INNER JOIN tabla2 t2 ON t1.id = t2.id AND t1.campo2 = t2.campo3
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.