0

現在の記事のカテゴリに割り当てられたすべての記事を出力するクエリが 1 つあります。

SELECT * FROM #__content WHERE catid='$catid'

そして、この表(下)には、類似記事として現在の記事に割り当てられている記事があります

assigned_id   fav_id
     1          45
     1          12
     1          53

SELECT fav_id FROM #__similar WHERE id='$id'

類似として割り当てられたものを含むすべての記事を出力する最初のクエリでそれらを非表示にしたい。したがって、この例では、ID 45,12,53 の記事は除外されます

4

2 に答える 2

2

これを試して

    SELECT * FROM #__content c
     INNER JOIN #__similar s
    ON c.article_id != s.fav_id
    WHERE catid='$catid'
于 2012-12-01T19:35:09.993 に答える
1

完全なクエリ:

SELECT distinct c1.* 
FROM #__content c1
LEFT OUTER JOIN #__similar S on S.fav_id = c1.id
LEFT OUTER JOIN c2 on c2.catid='$catid' and c2.id = S.assigned_id
WHERE c1.catid='$catid' and c2.id is null

ご覧のとおり、クエリは __content を __similar thourh fav_id と結合します。つまり、クエリは、このコンテンツが他のコンテンツと類似しているかどうかを調べます。最後の結合では、同様のアイテムが同じカテゴリにあることを確認します。

于 2012-12-01T19:36:43.617 に答える