文章详情页
mysql - sql联查,两个表关联,查询一个不在另一个表的记录
问题描述
现在有两张数据表a,b
表a字段(id, title)
表b中的字段(id, aid, uid),aid是表a的外键
查询不在表b中的a记录,不要用not in, 查询条件 uid
a表中的记录id | title01 测试102 测试203 测试3b表中的记录id | aid | uid01 01 0102 01 0203 01 0304 02 0105 02 03查询条件: uid=01
问题解答
回答1:select a.* from a left join b on a.id=b.aid and b.uid=’01’ where b.id is null group by a.id
主要在于uid=01这个过滤条件不能放在where里面,不然会把a表的数据过滤掉,而放在on则是先过滤b表数据再去和a表关联
回答2:这好像不科学啊 uid要去b表取 但是却要排除b表的记录是不是有点矛盾啊
排行榜