0

私は4つのMySQLテーブルを持っています

folder、folder_users、folder_posts、posts

上記をクエリし、ユーザーIDに基づいてフィルタリングできるデータを返すビューを作成する必要があります

フォルダには:

id、userid、title、date

folder_usersには次のものがあります。

id、folderid、userid

folder_postsには次のものがあります。

id、folderid、postid

投稿があります:

id、userid、media、text、type

目的は、ログインしているユーザーがフォルダーにアクセスでき、最新の画像(投稿テーブルのメディア列に保持されている)を表示するフォルダーのセットを表示することです。理想的には、これをMySQLビューに入れて取得します。 folder.dateで並べ替え

私はこのクエリをどこから始めればよいか悩んでいるので、どんな助けでも本当に感謝します。

*編集は不足している要素について考えました**

投稿テーブルには他のタイプの投稿が含まれます。これは、フォルダ内の一部の投稿にメディアがない可能性があることを意味します。したがって、クエリはこれを補正する必要があります。つまり、メディアがある場合は、これが結果に含まれていることを確認し、メディアがない場合は、 't


4

1 に答える 1

1
SELECT
  p.media, f.title
FROM
  posts p
INNER JOIN
  folder_posts fp
  ON
  fp.postid=p.id
INNER JOIN
  folder_users fu
  ON
  fu.id=fp.folderid
INNER JOIN
  folder f
  ON 
  f.id=fu.folderid AND f.userid='LOGED_USER_ID'
WHERE p.media IS NOT NULL
GROUP BY p.id
ORDER BY f.date
于 2012-08-03T11:45:40.477 に答える