1

エントリ データベースに like 機能を追加しました... DB の構造は次のとおりです。

**Users**
user_id
user_name
etc.

**Entries**
entry_id
entry_content
etc.

**Likes**
user_id
entry_id

(それよりも少し複雑です。グループ/カテゴリがありますが、それでうまく説明できるはずです...)現在私が取り組んでいるSQLクエリは次のとおりです。

SELECT 
entries.*,
DATE_FORMAT(entry_date, "%M %D, %Y") as entry_date,
groups.group_short_name,
users.user_name, users.user_id,
FROM entries 
INNER JOIN groups ON groups.group_id = entries.group_id 
INNER JOIN users ON users.user_id = entries.user_id 
ORDER BY entry_date DESC

このクエリでエントリごとのいいねも取得しようとしていますが、それが可能かどうか疑問に思っています。私は試してきました:

COUNT(DISTINCT likes.like_id) as likes

LEFT JOIN likes ON likes.entry_id = entries.entry_id

しかし、私はそれがどこでも正しいとは思いません。私は道を外れていますか?これは可能ですか?それがすべて理にかなっていることを願っています。

事前に助けてくれてありがとう。

4

2 に答える 2

1

たとえば、テーブルのエイリアスを指定します..

FROM entries e

次に、列クエリを追加します。

select e.*, (select count(*) from Likes where entry_id = e.entry_id) as entry_likes
于 2010-10-25T16:58:50.277 に答える
0

追加:

GROUP BY entries.entry_id

それが機能するかどうかを確認してください。

于 2010-10-25T16:57:35.383 に答える