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