特定の track_ID を持つ track_plays の行数をカウントし、これをさまざまなテーブルから大量のデータを選択するクエリに結合する必要があります。
これが私がこれまでに持っているものです。
SELECT
T.ID,
T.url,
T.name,
T.pic,
T.T_ID,
COUNT(P.T_ID) AS plays,
S.Status,
G.gig_name,
G.date_time,
G.lineup,
G.price,
G.ticket,
E.action,
E.ID,
E.timestamp,
E.E_ID
FROM
events E
LEFT JOIN
TRACKS T
ON T.ID = E.ID AND E.action = 'has uploaded a track.' AND E.E_ID = T.T_ID
LEFT JOIN
STATUS S
ON S.ID = E.ID AND E.action = 'has some news.' AND E.E_ID = S.S_ID
LEFT JOIN
GIGS G
ON G.ID = E.ID AND E.action = 'has posted a gig.' AND E.E_ID = G.G_ID
LEFT JOIN
track_plays P
ON P.A_ID = E.ID AND E.action = 'has uploaded a track.' AND E.E_ID = P.T_ID
WHERE E.ID = '3'
ORDER BY E.timestamp DESC LIMIT 15
私がやろうとしていることを言葉よりも早く説明する必要がありますが、基本的にはplays
トラックの再生回数がカウントされます。Events
は、すべての新しい ID が新しいコンテンツに使用されるテーブルです。それらにはアクションが与えられているため、それらがどのような種類のイベントであるかを判断し、正しいテーブルからデータを取得できます。
現時点では、そこに COUNT があると、クエリは次のようになります
ID name pic T_ID plays ...
3 1 2 44 100
そこに入力したデータは代表的なものであり、それよりも多くの列が得られます。ポイントは、このようなものを提供する必要があるということです。
ID name pic T_ID plays ...
3 1 2 44 100
3 3 1 48 10
4 8 2 21 86
ご覧のとおり、そこに COUNT があると、多くのデータが取り出されます。
詳細が必要な場合はコメントしてください。必要ないかもしれないし、ワッフルする傾向があるので、あまり詳細には触れたくありません.
ありがとう!