【发布时间】:2019-11-10 11:18:48
【问题描述】:
我有一个多对多关系的链接表,其中包含字段 -
- idNote
- idTag
我想过滤所有与包含指定数量标签的笔记相关联的标签。
例如,如果我选择标签“Running”、“Form”和“Times”,那么我想查看与具有这 3 个标签的注释相关联的所有标签.
前端的用户将使用此过程来细化他们正在寻找的结果,因此我需要能够使用代码 (node.js) 生成此 SQL,并通过标签进行过滤可能会发生很多多次。
我有下面的SQL代码,可以查询两个标签,但是有一些问题:
- 好像效率不高
- 如果需要再增加一层filer,通过代码不容易生成
SELECT DISTINCT idtag FROM table WHERE idnote IN (SELECT idnote FROM
(SELECT * FROM table WHERE idnote IN (SELECT idnote FROM table WHERE idtag
= 'Example')) as t1 where t1.idtag = 'SecondExample');
希望对如何提高这段代码的效率,以及将sql语句变成易于代码生成的东西提出一些建议。
【问题讨论】:
标签: mysql sql node.js querying