sqlite - 比较 2 列并仅查找唯一值
问题描述
如果我的格式不好,请提前道歉,这里是新的。
我试图仅从同一个表中的 2 个单独的列中获取唯一值。例如:https ://i.stack.imgur.com/SKZjT.png
将 column1 与 column2 进行比较时,我想获得结果 g
将 column2 与 column1 进行比较时,我想获得结果 h
我正在尝试实现这个逻辑,但它不起作用,任何建议将不胜感激!
SELECT column1 FROM list WHERE column1!=column2
编辑1:
这是我正在使用的实际数据集:https ://i.stack.imgur.com/VfOU5.png
基本上我正在编写一个小程序来检查我关注的账户是否也是关注者(反之亦然,但那是以后的事了)
这是我正在尝试但仅打印出 [] 的代码(如下所示):
# Open datas.db file for SQLite
db = cs50.SQL("sqlite:///datas.db")
followeronly = db.execute("SELECT followers FROM lists WHERE followers NOT IN(SELECT following FROM lists)")
print(followeronly)
对困惑感到抱歉!
解决方案
查询中的 WHERE 子句一次只计算单行中的列。所以对于第一行,WHERE 子句比较 a != h,这是真的,并且该行被添加到结果集中。这也发生在所有其他行上,因为 column1 在任何行中都不会等于 column2。所以所有行都被返回。每次评估行的 column1 时,都需要检查 column1 是否存在于任何行的 column2 中。
获得所需内容的一种可能方法是将 IN 与 WHERE 子句中的嵌套查询进行比较:
SELECT column1 FROM list WHERE column1 NOT IN (SELECT column2 FROM list)
推荐阅读
- camunda - Camunda delegateExecution 的 getVariable 抛出 ENGINE-03040 没有为变量实例定义序列化程序
- powershell - 自动检索受限语言模式的允许类型
- html - css flexbox 双右空格
- javascript - 将复选框值推送到会话存储中
- kotlin - 如何告诉 jOOQ KotlinGenerator 不要使所有数据类属性都可以为空?
- sql-server - SQL Server 2017 中的默认日期格式
- java - JSON 中不存在 @OneToMany 列
- python - Pandas GroupBy 使用多列和多索引并转换为字典
- flutter - 如何将完成者重置为未来
- c# - C#中short的CompareTo()方法