varias unir una tres tablas inner consultar consulta como php sql join forum

php - una - unir 3 tablas sql oracle



Dificultad con unir 3 tablas en una consulta en php (2)

Mi base de datos tiene 3 tablas a las que deseo acceder en la consulta de selección pero parece que no puedo hacer que funcione. Seleccionar desde 2 tablas funciona bien, así que sé que todo lo demás funciona aparte de mi código para seleccionar de 3 tablas. Mi base de datos ha sido creada en PHPmyadmin

Las tablas son las siguientes:

forum_replies

  • reply_id
  • topic_id
  • identidad de usuario
  • reply_text
  • fecha de respuesta

forum_topics

  • topic_id
  • categoria ID
  • identidad de usuario
  • Título del tema
  • Tema Descripción
  • topic_date

usuarios

  • identidad de usuario
  • usuario

Este es el código que he tratado de usar y muestra los campos que deseo seleccionar:

$queryreply = "SELECT forum_replies.reply_id, forum_replies.topic_id, forum_replies.user_id, forum_replies.reply_text, forum_replies.reply_date, users.user_id, users.username forum_topics.topic_id,forum_topics.topic_title, forum_topics.topic_date FROM forum_replies JOIN forum_topics ON forum_replies.topic_id = forum_topics.topic_id JOIN users ON forum_replies.user_id = users.user_id "; $result = mysql_query($queryreply) or die (mysql_error()); $row = mysql_fetch_array($result);

El ejemplo en el código sería apreciado. Gracias


Extrañas el , después de users.username ..

SELECT forum_replies.reply_id, forum_replies.topic_id, forum_replies.user_id, forum_replies.reply_text, forum_replies.reply_date, users.user_id, users.username, forum_topics.topic_id,forum_topics.topic_title, forum_topics.topic_date


Use esta consulta:

SELECT a.reply_text, a.reply_date, b.topic_title, c.username FROM forum_replies a LEFT JOIN forum_topics b ON a.topic_id=b.topic_id LEFT JOIN users c ON a.user_id=c.user_id // apply WHERE, ORDER, GROUP if needed

Además de los errores de sintaxis, debe usar LEFT JOIN y alias de tabla en su caso.

Para mostrar también el nombre de usuario del creador del tema, puede ajustar la consulta a lo siguiente:

SELECT a.reply_text, a.reply_date, b.topic_title, c.username AS reply_user, (SELECT username FROM users WHERE user_id=b.user_id) AS topic_creator FROM forum_replies a LEFT JOIN forum_topics b ON a.topic_id=b.topic_id LEFT JOIN users c ON a.user_id=c.user_id // apply WHERE, ORDER, GROUP if needed