繁体   English   中英

返回与MySQL中列表的2个项目匹配的记录

[英]Return records that match 2 items of a list in MySQL

我有2个表: linkslinks_keywords links具有id列, links_keywords具有link_id列和keyword_id列。 给定一个links.id ,我想所有links.id有至少2名匹配的关键字,将指定的links.id

例如,要获取仅具有1个匹配关键字的links.id ,我可以执行以下操作:

SELECT links.id 
FROM links 
INNER JOIN keywords ON keywords.link_id=links.id 
LEFT JOIN links links2 on links2.id=keywords.link_id 
WHERE links2.id=1

只需加入两个表,按ID分组并应用“至少2个匹配项”条件:

SELECT links.id
FROM links
JOIN keywords ON keywords.link_id = links.id
GROUP BY links.id
HAVING COUNT(*) >= 2;

或者,如果您已经在使用外键约束:

SELECT link_id AS id
FROM keywords
GROUP BY link_id
HAVING COUNT(*) >= 2;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM