【发布时间】:2020-04-24 09:32:48
【问题描述】:
我有以下数据库结构:
表 peekable_tag 本质上是一个包含许多不同标签的字典。
表 peekable_url 是一个包含不同 URL 的表,然后每个 URL 可以引用到多个标签。
例如,像 carmechanic.com 这样的 URL 可以同时分配有标签“汽车”和“机械师”。 像 teslacardirectory.com 这样的 url 可以分配三个标签,“汽车”、“特斯拉”和“机械师”。
使用以下查询,我可以提取所有分配了 1 个关键字的网址,例如关键字“汽车”
Select
peekable_tag.tag,
peekable_url.id,
peekable_url.url
From
peekable_tag Inner Join
peekable_urltotag On peekable_urltotag.peekable_tag_id = peekable_tag.id Inner Join
peekable_url On peekable_urltotag.peekable_URL_id = peekable_url.id
Where
peekable_tag.tag = 'Car'
将返回两个 URL。
不过……
如何更改此设置,以便使用多个关键字缩小搜索范围? 所以如果我搜索“汽车”和“特斯拉”作为关键字,只会出现 teslacardirectory.com。
我试过了
peekable_tag.tag = 'Car' AND peekable_tag.tag = 'Tesla'
但这不会返回任何结果。
我曾考虑将一个搜索查询嵌套在另一个搜索查询中,但随后我将被限制为只能使用两个关键字。或者嵌套三个查询,但是 id 被限制为 3 个关键字......有没有办法在不限制可以使用多少个关键字的情况下实现我想要做的事情?
【问题讨论】: