Ver Mensaje Individual
  #15 (permalink)  
Antiguo 31/05/2016, 13:44
Avatar de manuparquegiralda
manuparquegiralda
 
Fecha de Ingreso: junio-2012
Ubicación: Barcelona
Mensajes: 241
Antigüedad: 11 años, 10 meses
Puntos: 39
Respuesta: Como hacer una consultas a dos tablas ?

A ver te lo han explicado ya, mira, imagina que estamos en un colegio y tenemos dos aulas, en ambas aulas hay un alumno que se llama Juan y yo te digo, traeme a Juan. A ti te surgirá una duda, ¿Qué Juan, el del aula 1 o el del aula 2?

Pues con el error que te está dando la consulta esta pasando eso mismo, MySql query te está diciendo ¿Que ID?

Tu consulta debería quedar así:

Código MySQL:
Ver original
  1. SELECT post.id, jugadores.id_post FROM post INNER JOIN jugadores ON post.id = jugadores.id_post

OJO!! Esta consulta te va a dar los mismos reusultados, porque tu estás relacionando la tabla de jugadores con la de post a través del id de la tabla post. Por lo tanto esta consulta te arrojará los id de los post que haya en ambas tablas, es decir, si tienes diez registros en la tabla post y cinco en la tabla jugadores que están relacionados con cinco post, te arrojará los cinco id de los post que estén en ambas tablas.

Si por ejemplo, los datos que quieres coger son el nombre de los jugadores y la fecha del post (pongo un ejemplo, desconozco los campos de tus tablas), tendrías que poner algo así:


Código MySQL:
Ver original
  1. SELECT post.id, post.fecha, jugadores.nombre FROM post INNER JOIN jugadores ON post.id = jugadores.id_post

Esta consulta te arrojará el id y la fecha de los post y los nombres de los jugadores que haya forzosamente en ambas tablas, es decir, lo que hará será buscarte las coincidencias de id entre las tabla post y la tabla jugadores (INNER JOIN jugadores ON post.id = jugadores.id_post). Si en la tabla jugadores no tienes ningún post_id que coincidad con el id de alguno de los post, esta consulta no te arrojará resultados y si los tiene pues te arrojara una lista de resultados con el id del post, la fecha del post y el nombre de los jugadores cuyo id_post coincidan con el id de algún post.

No sé si me he explicado bien. Si después quieres por ejemplo poner alguna condición WHERE como por ejemplo, de fecha, es decir una fecha mayor al año 2016 sería algo así:

Código MySQL:
Ver original
  1. SELECT post.id, post.fecha, jugadores.nombre FROM post INNER JOIN jugadores ON post.id = jugadores.id_post WHERE post.fecha > '2016-01-01'

Como puedes ver, delante del campo concreto, tienes que poner la tabla a la que nos estamos refiriendo separándo la tabla del campo por un punto, que sería lo mismo que en el ejemplo que puse al principio, traeme a Juan del aula 1, (SELECT aula_1.nombre FROM aula_1 WHERE aula_1.nombre = 'JUAN')
__________________
Diseño Web - Arisman Web