- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个表格将客户与之前的购买联系起来:
RecID CustID ProdID
1 20 105
2 20 300
3 31 105
4 45 105
5 45 300
6 45 312
我想获取购买项目 105 的客户 ID 列表,但除了第 300 项之外没有。
在这种情况下,CustID 31。
我似乎无法使用选择和连接来做到这一点。我被难住了!
我非常感谢有经验的 SQL 人员的帮助。
谢谢!
谢谢!
我是问题的原作者。
Mark Byers 使用 NOT IN 的第二个示例效果很好! (这个对我有用后我没有尝试其他人)。
他的第一个 LEFT JOIN 示例没有返回任何 CustID...我认为我正确复制了它并使用了正确的表名和列名。所以我不知道为什么它对我不起作用。
再次感谢所有愿意花时间为我写一些 SQL 的人。
我必须创建一个新帐户才能发表评论(我无法使用我昨天创建的帐户登录,并且密码恢复说找不到我)
最佳答案
有三种常见的方法。这是一种 LEFT JOIN 方法:
SELECT T1.CustID
FROM yourtable T1
LEFT JOIN yourtable T2 ON T1.CustID = T2.CustID AND T2.ProdId = 300
WHERE T1.ProdId = 105
AND T2.ProdId IS NULL
这里不在:
SELECT CustID
FROM yourtable
WHERE ProdId = 105
AND CustID NOT IN
(
SELECT CustID
FROM yourtable
WHERE ProdId = 300
)
或者你可以使用不存在:
SELECT CustID
FROM yourtable T1
WHERE ProdId = 105
AND NOT EXISTS
(
SELECT NULL
FROM yourtable T2
WHERE T2.ProdId = 300
AND T2.CustID = T1.CustID
)
哪个性能更好取决于您使用的数据库和版本。
对于 SQL Server,最好使用 NOT IN 或 NOT EXISTS:
In SQL Server, NOT EXISTS and NOT IN predicates are the best way to search for missing values, as long as both columns in question are NOT NULL. They produce the safe efficient plans with some kind of an Anti Join.
LEFT JOIN / IS NULL is less efficient, since it makes no attempt to skip the already matched values in the right table, returning all results and filtering them out instead.
来源:
关于sql - 如何找到购买了一种产品但不购买另一种产品的人?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3688839/
例如,我有一个父类Author: class Author { String name static hasMany = [ fiction: Book,
代码如下: dojo.query(subNav.navClass).forEach(function(node, index, arr){ if(dojo.style(node, 'd
我有一个带有 Id 和姓名的学生表和一个带有 Id 和 friend Id 的 Friends 表。我想加入这两个表并找到学生的 friend 。 例如,Ashley 的 friend 是 Saman
我通过互联网浏览,但仍未找到问题的答案。应该很容易: class Parent { String name Child child } 当我有一个 child 对象时,如何获得它的 paren
我正在尝试创建一个以 Firebase 作为我的后端的社交应用。现在我正面临如何(在哪里?)找到 friend 功能的问题。 我有每个用户的邮件地址。 我可以访问用户的电话也预订。 在传统的后端中,我
我主要想澄清以下几点: 1。有人告诉我,在 iOS 5 及以下版本中,如果您使用 Game Center 设置多人游戏,则“查找 Facebook 好友”(如与好友争夺战)的功能不是内置的,因此您需要
关于redis docker镜像ENTRYPOINT脚本 docker-entrypoint.sh : #!/bin/sh set -e # first arg is `-f` or `--some-
我是一名优秀的程序员,十分优秀!