-1

これに対する適切な MySQL クエリは何ですか? これが私が達成したいことです。

  1. すべてのステータス更新エントリ、投稿日、投稿者のユーザー名、性別、都市、およびタグを表示したい
  2. user_id='1' のメンバーによるすべてのステータス更新エントリ、ステータス更新が投稿された日付、投稿者のユーザー名、性別、都市、メンバーがプロファイルに持っているタグを表示したいと考えています。
  3. また、ユーザーがプロファイルに持っているすべてのタグを「,」で区切られた 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でコーディングしています。助けてくれてありがとう。

4

1 に答える 1

1
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
于 2012-08-30T13:39:06.827 に答える