Php 从5个表中获取数据的MySQL查询?

Php 从5个表中获取数据的MySQL查询?,php,mysql,Php,Mysql,什么是正确的MySQL查询?以下是我想要实现的目标 我想显示所有状态更新条目、发布日期和 海报用户名、性别、城市和标签 我想显示用户为_id='1'的成员的所有状态更新条目,状态更新发布的日期,海报用户名、性别、城市以及该成员在其个人资料上的标签 我如何在一行中以“,”分隔显示用户配置文件上的所有标记?我之前试过group_concat,但没能成功。请帮忙 这是我的桌子 STATUS_UPDATE Table +------------------------------------------

什么是正确的MySQL查询?以下是我想要实现的目标

  • 我想显示所有状态更新条目、发布日期和 海报用户名、性别、城市和标签
  • 我想显示用户为_id='1'的成员的所有状态更新条目,状态更新发布的日期,海报用户名、性别、城市以及该成员在其个人资料上的标签
  • 我如何在一行中以“,”分隔显示用户配置文件上的所有标记?我之前试过group_concat,但没能成功。请帮忙
  • 这是我的桌子

    STATUS_UPDATE Table
    +------------------------------------------------------+
    | status_id | user_id |      body       |  postdate    |
    +-----------+---------+-----------------+--------------+
    | 1         |   1     | hello world     | Aug 12, 2012 |
    +-----------+---------+-----------------+--------------+
    | 2         |   1     | i miss you      | Aug 13, 2012 |
    +-----------+---------+-----------------+--------------+
    | 3         |   2     | lorem ipsum     | Aug 14, 2012 |
    +-----------+---------+-----------------+--------------+
    | 4         |   2     | why me? why?    | Aug 14, 2012 |
    +-----------+---------+-----------------+--------------+
    
    MEMBERS Table    //Primary data of members
    +---------------------------------------------------+
    | user_id | username |  password  |   email         |
    +---------+----------+------------+-----------------+
    |    1    | john_doe |  qwerty    | john@doe.com    |
    +---------+----------+------------+-----------------+
    |    2    | maryjane |  pass123   | mary@jane.com   |
    +---------+----------+------------+-----------------+
    
    MEMBERS_DATA Table   //Profile Fields
    +----------------------------------------------+
    | user_id | gender |  description  |   city    |
    +---------+--------+---------------+-----------+
    |    1    | male   |  i am simple  | chicago   |
    +---------+--------+---------------+-----------+
    |    2    | female |  i am flirty  | newyork   |
    +---------+--------+---------------+-----------+
    
    MEMBERS_TAGS Table   //tags that members added to their profiles
    +-------------------+
    | user_id | item_id |
    +---------+---------+
    |  1      |  555    |
    +---------+---------+
    |  1      |  666    |
    +---------+---------+
    |  1      |  7777   |
    +---------+---------+
    |  2      |  8888   |
    +---------+---------+
    
    
    TAGS Table    //the info of the tags
    +------------------------------+
    | item_id | cat_id |  name     |
    +---------+--------+-----------+
    | 555     |   5    |  sexy     |
    +---------+--------+-----------+
    | 666     |   5    |  beauty   |
    +---------+--------+-----------+
    | 7777    |   6    |  music    |
    +---------+--------+-----------+
    | 8888    |   6    |  movies   |
    +---------+--------+-----------+
    
    CATEGORY Table   //the category of the tags
    +-------------------------+
    | cat_id  | category_name |
    +---------+---------------+
    | 5       |  appearance   |
    +---------+---------------+
    | 6       |  hobbies      |
    +---------+---------------+
    

    顺便说一句,我用PHP编写代码,我想提前感谢您的帮助。

    选择b.*,a.status\u id,a.body,a.postdate,b.username,b.email,c.gender,c.city,c.description,e.name FROM status_更新b.user_id=a.user_id LEFT-OUTER-JOIN members_数据c ON c.user_id=b.user_id LEFT-OUTER-JOIN members_标签d ON d.user_id=b.user_id LEFT-OUTER-JOIN标签e ON e.item_id=d.item_id.“($user_id?),其中a.user_id=$user_id=$user_id:“:”)ORDER BY a.$orderby$orderdir LIMIT$LIMIT
    为什么不使用代替on?两者都可以使用,但这是我的做法
    SELECT 
          STATUS_UPDATE.* ,
          MEMBERS.username ,
          MEMBERS_DATA.gender ,
          MEMBERS_DATA.city
          TAGS.*
    FROM  UPDATE
    LEFT JOIN MEMBERS ON MEMBERS.user_id = STATUS_UPDATE.user_id
    LEFT JOIN MEMBERS_DATA ON MEMBERS_DATA.user_id = STATUS_UPDATE.user_id
    LEFT JOIN MEMBERS_TAGS ON MEMBERS_TAGS.user_id = STATUS_UPDATE.user_id
    LEFT JOIN TAGS ON TAGS.item_id = MEMBERS_TAGS.item_id