急。。inner join 问题
select a.* from member_1 as a inner join tb_game_chat b on a.mem_id <> b.g_id where a.mem_type= '0 '
请问为什么不能用 <> 呢??结果是查询了多次
我想实现 查询表a不等于表b的
------解决方案--------------------用 <> 就相当于交叉联接
------解决方案--------------------你这个比较麻烦...
应该是先用inner join求出相等的
再求a 和 相等的集合的差集
------解决方案-------------------- <> 的到的是乘积的查询
------解决方案--------------------select a.* ,b.g_id from member_1 as a inner join tb_game_chat b on (1=1) where a.mem_type= '0 ' and a.mem_id <> b.g_id
------解决方案--------------------not in 或者 not exists。例如:
select * from member_1 as a where mem_type= '0 ' and not exists(select * from tb_game_chat where g_id=a.mem_id)
------解决方案--------------------select a.* from member_1 as a inner join tb_game_chat b on a.mem_id <> b.g_id where a.mem_type= '0 '
-------------------------------------------
select * from member_1 where mem_id not in(select g_id from tb_game_chat) and mem_type= '0 '
用子查询不要用连接,虽然not in不是很好的方法可是也比用连接好一点