我有三张桌子。
表 1 是包装。表 2 是 package_to_keyword。表 3 是关键字。
包可以连接到多个关键字。因此,如果我查询 package_to_keyword 加入关键字和包,我可以搜索与某个关键字相关的所有包。这是我理解的部分。
现在...我的问题是,如何检索与关键字列表匹配的包?现在,在 php 中,我循环一个 sql 语句,然后循环遍历每个关键字的所有结果,并执行 array_intersect() 以过滤到所有结果集中显示的包。但是,我确信这很糟糕,因为当我确定 SQL 是为处理这种类型的关系而构建时,我正在为每个关键字运行一个查询,我只是不确定要执行哪种类型的查询。
关键是关键字列表可以是任意数量的单词。如果我使用 IN ('keyword','array','returns','all','results') 之类的东西,当我只想要包时,我只会得到与 任何关键字有关系的所有包的列表与所有关键字都有关系。
想法?