Sql 左连接查询失败
想知道是否有人可以解释为什么我的查询在SQLite中没有给出所需的结果 我有两张桌子 表A包含许多行,其中有一个名为picklist_id的列,其中的值是重复的,我试图获取这些行的不同值,然后检查表2中是否存在此picklist id。这就是我所拥有的,但我只是得到了一个空的结果Sql 左连接查询失败,sql,sqlite,Sql,Sqlite,想知道是否有人可以解释为什么我的查询在SQLite中没有给出所需的结果 我有两张桌子 表A包含许多行,其中有一个名为picklist_id的列,其中的值是重复的,我试图获取这些行的不同值,然后检查表2中是否存在此picklist id。这就是我所拥有的,但我只是得到了一个空的结果 SELECT distinct(pt.picklist_id) from picklisttable pt LEFT JOIN pickingtable p on pt.picklist_id = p.picklis
SELECT distinct(pt.picklist_id) from picklisttable pt LEFT JOIN pickingtable p on
pt.picklist_id = p.picklist_id where p.picklist_id = null
有人能给我指出正确的方向吗?如果表b中不存在选择列表id,我希望返回表a中的选择列表id。相同的查询,但不是
=NULL
而是为NULL
SELECT distinct(pt.picklist_id) from picklisttable pt LEFT JOIN pickingtable p on
pt.picklist_id = p.picklist_id where p.picklist_id IS null
试试这个。相同的查询,但不是
=NULL
而是为NULL
SELECT distinct(pt.picklist_id) from picklisttable pt LEFT JOIN pickingtable p on
pt.picklist_id = p.picklist_id where p.picklist_id IS null
试试这个。相同的查询,但不是
=NULL
而是为NULL
SELECT distinct(pt.picklist_id) from picklisttable pt LEFT JOIN pickingtable p on
pt.picklist_id = p.picklist_id where p.picklist_id IS null
试试这个。相同的查询,但不是
=NULL
而是为NULL
SELECT distinct(pt.picklist_id) from picklisttable pt LEFT JOIN pickingtable p on
pt.picklist_id = p.picklist_id where p.picklist_id IS null
这应该是isnull,而不是=NULL
SELECT pt.picklist_id
FROM picklisttable pt
LEFT JOIN pickingtable p on pt.picklist_id = p.picklist_id
WHERE p.picklist_id = null;
当请求数据的存在性时,EXISTS子句通常可读性更强,而IN子句仅处理一列时可读性更强
SELECT pt.picklist_id
FROM picklisttable pt
WHERE NOT EXISTS (select * from pickingtable p where pt.picklist_id = p.picklist_id);
或
或处理集合和使用,除了我认为更可读的:
SELECT picklist_id FROM picklisttable
EXCEPT
SELECT picklist_id FROM pickingtable;
这应该是isnull,而不是=NULL
SELECT pt.picklist_id
FROM picklisttable pt
LEFT JOIN pickingtable p on pt.picklist_id = p.picklist_id
WHERE p.picklist_id = null;
当请求数据的存在性时,EXISTS子句通常可读性更强,而IN子句仅处理一列时可读性更强
SELECT pt.picklist_id
FROM picklisttable pt
WHERE NOT EXISTS (select * from pickingtable p where pt.picklist_id = p.picklist_id);
或
或处理集合和使用,除了我认为更可读的:
SELECT picklist_id FROM picklisttable
EXCEPT
SELECT picklist_id FROM pickingtable;
这应该是isnull,而不是=NULL
SELECT pt.picklist_id
FROM picklisttable pt
LEFT JOIN pickingtable p on pt.picklist_id = p.picklist_id
WHERE p.picklist_id = null;
当请求数据的存在性时,EXISTS子句通常可读性更强,而IN子句仅处理一列时可读性更强
SELECT pt.picklist_id
FROM picklisttable pt
WHERE NOT EXISTS (select * from pickingtable p where pt.picklist_id = p.picklist_id);
或
或处理集合和使用,除了我认为更可读的:
SELECT picklist_id FROM picklisttable
EXCEPT
SELECT picklist_id FROM pickingtable;
这应该是isnull,而不是=NULL
SELECT pt.picklist_id
FROM picklisttable pt
LEFT JOIN pickingtable p on pt.picklist_id = p.picklist_id
WHERE p.picklist_id = null;
当请求数据的存在性时,EXISTS子句通常可读性更强,而IN子句仅处理一列时可读性更强
SELECT pt.picklist_id
FROM picklisttable pt
WHERE NOT EXISTS (select * from pickingtable p where pt.picklist_id = p.picklist_id);
或
或处理集合和使用,除了我认为更可读的:
SELECT picklist_id FROM picklisttable
EXCEPT
SELECT picklist_id FROM pickingtable;
对于where子句,请尝试“p.picklist\u id为null”而不是“p.picklist\u id=null”对于where子句,请尝试“p.picklist\u id为null”而不是“p.picklist\u id=null”对于where子句,请尝试“p.picklist\u id为null”而不是“p.picklist\u id=null”对于where子句,请尝试“p.picklist\u id为null”“p.picklist_id=null“您不能使用packlist\u id离开join,然后要求它为null。@GordonLinoff我的原始查询在pt.picklist\u id周围有一个不同的包装,我为了测试而删除了它,但在发布之前忘了再次添加它,我将编辑我的qnow@Bob-那你建议我怎么做?这是我的sql知识所能达到的极限@戴夫。鲍勃完全错了。你这样做是对的。@GordonLinoff-谢谢!您不能使用packlist_id离开join,然后要求它为null。@GordonLinoff我的原始查询在pt.picklist_id周围有一个不同的包装,我删除了它以进行测试,并忘记在发布之前再次添加它,我将编辑我的qnow@Bob-那你建议我怎么做?这是我的sql知识所能达到的极限@戴夫。鲍勃完全错了。你这样做是对的。@GordonLinoff-谢谢!您不能使用packlist_id离开join,然后要求它为null。@GordonLinoff我的原始查询在pt.picklist_id周围有一个不同的包装,我删除了它以进行测试,并忘记在发布之前再次添加它,我将编辑我的qnow@Bob-那你建议我怎么做?这是我的sql知识所能达到的极限@戴夫。鲍勃完全错了。你这样做是对的。@GordonLinoff-谢谢!您不能使用packlist_id离开join,然后要求它为null。@GordonLinoff我的原始查询在pt.picklist_id周围有一个不同的包装,我删除了它以进行测试,并忘记在发布之前再次添加它,我将编辑我的qnow@Bob-那你建议我怎么做?这是我的sql知识所能达到的极限@戴夫。鲍勃完全错了。你这样做是对的。@GordonLinoff-谢谢!谢谢,+1您的答案将@thorsten标记为完整性正确,并提供其他选项谢谢,+1您的答案将@thorsten标记为完整性正确,并提供其他选项谢谢,+1您的答案将@thorsten标记为完整性正确,并提供其他选项谢谢,+1您的答案,但将@thorsten标记为完整性正确,并提供其他选项