作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有表:
表格站点
╔════╦═══════════════╗
║ ID ║ NAME ║
╠════╬═══════════════╣
║ 1 ║ stackoverflow ║
║ 2 ║ google.com ║
║ 3 ║ yahoo.com ║
║ 4 ║ cnn.com ║
╚════╩═══════════════╝
表格小工具
╔════╦════════════╗
║ ID ║ NAME ║
╠════╬════════════╣
║ 1 ║ polling ║
║ 2 ║ comments ║
║ 3 ║ newsletter ║
║ 4 ║ mail ║
╚════╩════════════╝
表格站点小部件
╔═════════╦═══════════╗
║ SITE_ID ║ WIDGET_ID ║
╠═════════╬═══════════╣
║ 1 ║ 1 ║
║ 1 ║ 2 ║
║ 2 ║ 2 ║
║ 2 ║ 3 ║
║ 4 ║ 2 ║
║ 3 ║ 1 ║
║ 3 ║ 3 ║
║ 1 ║ 4 ║
║ 3 ║ 4 ║
║ 4 ║ 1 ║
║ 4 ║ 4 ║
╚═════════╩═══════════╝
我想获得所有带有评论 (2) 和邮件 (4) 的站点。
我尝试:
SELECT * FROM Site
LEFT JOIN SiteWidget ON Site.id = SiteWidget.site_id
WHERE SiteWidget.widget_id IN (2, 4)
但这会返回 stackoverflow (2, 4 - OK), google.com (2 - NOT OK - without 4), yahoo.com (4 - NOT OK, without 2) and cnn.com (2, 4 -好的)。我如何获得所有带有 2 和 4 的站点?一直在一起,不是一个人。
最佳答案
这是一种方法 - 使用额外的连接,以便您可以查找 2 个小部件的组合:
SELECT * FROM Site s
INNER JOIN SiteWidget w1 ON (s.id = w1.site_id)
INNER JOIN SiteWidget w2 ON (s.id = w2.site_id)
WHERE w1.widget_id=2 and w2.widget_id=4;
关于mysql - IN 对于许多元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14671425/
我是一名优秀的程序员,十分优秀!