搜索相关表格中的字段

时间:2018-04-26 17:18:33

标签: mysql sql database

这是表topics

  • int id
  • string label

这是表articles

  • int id
  • string label
  • string content
  • int topic_id(外键)

这是表comments

  • int id
  • string content
  • string article_id(外键)

现在,我想实现一个搜索功能,该功能可以生成搜索词(LIKE%term%)包含在

中的所有文章
  • 文章的labelcontent
  • 文章主题的label
  • content属于本文的评论

我认为解决方案可能与JOINS有关,但我绝对不知道如何做到这一点。有人可以帮忙吗?

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

我猜你是新手,不想实施“全文搜索”解决方案。因此,一个简单的SQL将是:

select a.*
  from topics t
  join articles a on a.topic_id = t.id
  join comments c on c.article_id = a.id
  where a.label like '%term%'
     or a.content like '%term%'
     or t.label like '%term%'
     or c.content like '%term%'

请注意,在处理大量或主题,文章或评论时,此SQL解决方案的性能不佳。但是,它会运行良好,并会返回您想要的文章。