当前位置: 首页 > 面试题库 >

SQL如何搜索多对多关系

禄俊逸
2023-03-14
问题内容

我有一个包含两个主表notes和一个数据库labels。它们之间存在多对多的关系。我想知道的是如何使用SQL使用多个标签搜索笔记?

例如,如果我有一个带有三个标签“一个”,“两个”和“三个”的注释“ test”,而我有一个带有标签“一个”和“两个”的第二个注释“
test2”,那么将执行什么SQL查询找到与标签“一个”和“两个”相关联的所有注释?


问题答案:

要获取 同时 带有标签“ One”和“ Two”的笔记的详细信息,请执行以下操作:

select * from notes
where note_id in
( select note_id from labels where label = 'One'
  intersect
  select note_id from labels where label = 'Two'
)


 类似资料:
  • 我在Books表和Authors表之间有多对多的关系。透视表(author_book)包含author_id和book_id。

  • 我已经开始开发我的第一个MySQL数据库,我遇到了一个简单的问题。 我将我的电影按“多对多”关系进行分类: 我试图做的是按类型搜索我的电影表,并显示每部电影的所有类型,例如: 这是一个我用来搜索恐怖电影的查询 我遇到的问题是,这个查询在筛选之前检索所有表的全部,我收集的结果非常低效。有没有更好的方法可以在显示所有相关类型的同时按一种类型搜索?

  • 问题内容: 我需要能够使用一个简单的搜索来搜索数据库的SQL查询。这是我的表格现在的样子: 我将如何去做呢?这是我尝试过的一些SQL查询,但是我的问题是它返回了大量数据。例如,如果我搜索像Snoop Dogg这样的艺术家,即使没有专辑名称,它也会为他所拥有的每张专辑和每首歌曲返回一行。 编辑: 这是一个示例数据库; 因此,我想搜索“ snoop”以仅返回艺术家“ Snoop Dogg”。但随后进行

  • 我的Laravel项目有问题。我有范文和评论。一篇帖子有很多评论,这是我帖子评论中的关系。当我想获得所有帖子和评论时,一切都很好: 我有问题,因为我想写搜索引擎的模型。我只想得到帖子和评论,如果搜索条件为真的评论。我尝试以下代码: 但这段代码返回所有要发布的注释,而不仅仅是条件为true的注释。

  • 我想索引和搜索使用Lucene索引的数据片段。 例如。物品及其颜色 搜索示例 可能的解决办法 根据我在答案中发现的,显然我可以使用这种格式将这些添加到一个字段中。 如果我现在用这种格式的数据进行搜索,我不会得到任何结果。 null

  • 我们计划在应用程序端缓存DB表(以避免DB调用)。我们的缓存是关键 从列1=? 的表中选择*,从列2=?和列3=? 的表中选择*,从列4=?和列5=?和列6=?的表中选择*。 一个最简单的选择是构建3个缓存,如下所示。 (专栏1)- 还有更好的选择吗? 要点: 表包含数百万条记录 我们使用Java ConcurrentHashMap实现缓存