Consulta de tablas relacionadas

    • PoetaCamba
      Invitado
    02/04/2003
    #1 Consulta de tablas relacionadas

    hola, lo que quiero hacer es esto:

    Tengo 2 tablas:

    Código:
       usuario
          id_user
          name_user
    
       posts
          id_post
          id_user
          title_post
    bueno, yo quiero hacer una consulta que me tire el siguiente resultado:

    Código:
       title_post     | name_user
       -------------   | ---------------
       Caramba..       |   Diego
       mama mima       |   Juan
         ........     |  pepe
    estoy trabajando con mysql si alguien puede darme una mano se lo agradeceria porque nose como hacer para relacionar id_user con name_user de la otra tabla...

    me explico?
  1. ¿Este tema te pareció interesante? Compártelo!

    ¿No es lo que buscabas? Intenta buscar un tema similar

    5 comentarios / 10860 Visitas

      • 271
      • mensajes
      • miembro desde
      • 21/03/02
    02/04/2003
    #2

    SELECT p.title_post, u.name_user
    FROM posts p, usuarios u
    WHERE u.id_user = n
    AND p.id_user = u.id_user

    Donde n es el id del usuario.
    No lo probe pero deberia andar.
    Podes hacer un join tambien, pero en este caso da igual..

    • PoetaCamba
      Invitado
    02/04/2003
    #3

    paso a explicar mejor mi situacion...

    estoy haciendo para phpbb un modulo para que tome los ultimos 10 mensajes publicados y estoy teniendo en cuenta esto:

    Código:
    phpbb_posts
    	post_id
    	poster_id
    	forum_id
    	
    phpbb_posts_text
    	post_id
    	post_subject
    	
    phpbb_forums	
    	forum_name
    	forum_id
    	
    phpbb_users
    	username
    	user_id
    por ahora lo que logre fue ver el titulo del post y el nombre del foro con la siguiente sentencia:

    Código:
       SELECT phpbb_posts_text.post_subject, phpbb_forums.forum_name
        FROM (phpbb_posts_text INNER JOIN phpbb_posts ON
        phpbb_posts_text.post_id=phpbb_posts.post_id)
        INNER JOIN phpbb_forums ON
        phpbb_forums.forum_id=phpbb_posts.forum_id;
    y el resultado es el siguiente:

    Código:
    +------------------------+------------+
    | post_subject           | forum_name |
    +------------------------+------------+
    | Prueba de mensaje      | Tecla Loca |
    |                        | Tecla Loca |
    | Esta es la encrucijada | GNU/Linux  |
    | Re: encrucijada        | GNU/Linux  |
    +-+------------------------+------------+
    Bueno tambien me muestra las respuestas que luego lo solucionaré pero primero quiero solucionar este tema...

    MI PROBLEMA: quiero que tambien aparezca el nombre de usuario que posteo el msg... y como no la tengo muy clara con el inner join (vi un ejemplo hace unos minutos) quisiera saber como hago para poder relacionar la otra tabla...
      • 271
      • mensajes
      • miembro desde
      • 21/03/02
    03/04/2003
    #4

    una pregunta, ninguna de las 3 primeras tablas tiene el user_id en algun lado ?
    porque asi a simple vista la tabla phpbb_users no se relaciona con las otras con nada.

      • 346
      • mensajes
      • miembro desde
      • 08/06/02
    03/04/2003
    #5

    Así:

    Código:
    SELECT f.forum_name, t.topic_title, u.username
    FROM phpbb_topics t
    INNER JOIN phpbb_forums f ON t.forum_id = f.forum_id
    INNER JOIN phpbb_posts p ON t.topic_last_post_id = p.post_id
    INNER JOIN phpbb_users u ON p.poster_id = u.user_id
    ORDER BY topic_last_post_id DESC 
    LIMIT 10
      • 271
      • mensajes
      • miembro desde
      • 21/03/02
    03/04/2003
    #6

    ah. poster_id == user_id..