sql – 从table1中选择*不存在于table2中的条件
发布时间:2020-12-12 08:26:46 所属栏目:MsSql教程 来源:网络整理
导读:我有2张桌子一个是可以学习的东西的表.有一个JID指定每一行,并且对每一行都是唯一的.第二个表是已经学习的东西(JID)的日志,也是学习它的人的用户标识.我目前正在使用它来选择JID的所有数据,但只有用户基于userid所学习的数据. SELECT * FROM tablelist1LEFT J
我有2张桌子一个是可以学习的东西的表.有一个JID指定每一行,并且对每一行都是唯一的.第二个表是已经学习的东西(JID)的日志,也是学习它的人的用户标识.我目前正在使用它来选择JID的所有数据,但只有用户基于userid所学习的数据.
SELECT * FROM tablelist1 LEFT JOIN tablelog2 ON (tablelist1.JID = tablelog2.JID) AND tablelog2.UID = 'php var' WHERE tablelog2.JID IS NOT NULL 我现在需要选择要学习的行的行,但只有用户标识没有学到的东西.我显然很新,忍受我. :)我尝试使用IS NULL,但似乎它的工作原理,它给了重复的JID的一个是NULL,一个是正确的. 解决方法使用LEFT JOIN / IS NULL:SELECT t.* FROM TABLE_LIST t LEFT JOIN TABLE_LOG tl ON tl.jid = t.jid WHERE tl.jid IS NULL 使用NOT IN: SELECT t.* FROM TABLE_LIST t WHERE t.jid NOT IN (SELECT tl.jid FROM TABLE_LOG tl GROUP BY tl.jid) 使用NOT EXISTS: SELECT t.* FROM TABLE_LIST t WHERE NOT EXISTS(SELECT NULL FROM TABLE_LOG tl WHERE tl.jid = t.jid) FYI (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |