0
最も一致するタグのある投稿に基づいて、ほとんど「推奨」されていない機能を作成しようとしています。最も一致するリレーションを持つエントリ
私はこのようなレイアウトを得た:私はidのポストのための推奨を取得しますので、もし
投稿
id
---
1
2
3
4
post_tags
post_id | tag_id
---------+---------
1 | 1
1 | 2
2 | 2
2 | 3
2 | 4
3 | 1
3 | 2
3 | 4
4 | 5
タグ
id
----
1
2
3
4
5
SELECT DISTINCT
p.id,
p.title,
count(*) as cnt
FROM
posts p
INNER JOIN posts_tags pt ON pt.post_id= p.id
INNER JOIN tags t ON pt.tag_id = t.id
WHERE
t.id IN (
SELECT
pt.tag_id
FROM
posts_tags pt
WHERE
pt.post_id = '30213'
)
GROUP BY
t. NAME
order by count(*) desc
LIMIT 0, 4
:1のリストは、
私のクエリは、これまでのところ、このようになります
3(2/2試合を)行く 2(1/2マッチ) 4(0/2マッチ)すべきです
私がため、カウントDISTINCT
が動作していない知っているが、私は彼がカウントだけか見てみたかったので、結果は次のようになります。
4 Foo 4881
4 Foo 2560
11 Bar 2094
12 Baz 1998
だから何happeネッド?それは一般にタグの出現を数えた。したがって、「Post 1」の最初に関連付けられたタグは、関連付けられた4881であり、一致する最初のエントリを引っ張ります。
問題が表示されますが、解決できません。
私はSQL関連の質問にいつもお手伝いしてくれることを覚えています。あなたはさらなる学習のための助言がありますか? – Soundz