0

我有一个查询打印分配给当前文章类别的所有文章

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 回答