1

表文章存储文章 id 和标题值。表相似通过匹配文章 = 相似表 ID 来添加具有相似 ID 的额外文章。

我最好显示输出,很难用语言解释:

Article with id 3 -> Title3 Text3
when
Similar articles -> Title1(voteup,votedown), Title2(voteup,votedown)

因为文章表 id = 相似表 id。( 3 = 3[similar_id 1],3[similar_id 2].)并且可能当文章输出类似文章 id 时,它必须返回并从第一个表中获取相似 ID 的标题。

-

Table Articles:

    ID     Title    text

    1      title1   text1
    2      title2   text2
    3      title3   text3

Table Similar:

    ID     Similar_ID   voteup votedown

    1          2          50      2
    2          3         1621    531
    3          1         ...     ...
    3          2         ...     ...
4

1 回答 1

1

根据您的要求,该Similar_ID字段在这里是一个红鲱鱼,不应包含在查询中:

SELECT articles.Title, similar.VoteUp, similar.VoteDown
FROM articles
JOIN similar ON articles.ID = similar.ID
WHERE articles.ID = 3

并且要包含类似的标题(尽管我不太确定您希望数据结构如何),您可以这样做:

SELECT articles.Title, similar.VoteUp, similar.VoteDown, similar_articles.Title AS SimilarTitle
FROM articles
JOIN similar ON articles.ID = similar.ID
JOIN articles similar_articles ON similar.Similar_ID = similar_articles.ID
WHERE articles.ID = 3
于 2012-10-17T17:19:10.467 回答