连表查询两个表中第一个表中有而第二表中没有的数据

我有2个mysql数据表 
A表一个字段Aname,数据:a、b、c、d、e 
B表一个字段Bname,数据:a、b、c 
现在我想查出存在于A表、但不存在于B表里的数据:d、e 
不知道mysql里面的语句这么写??? 

标准sql语句大概是:select Aname from A where Aname not in(select Bname from B) 

但是mysql不支持嵌套查询~~~有什么其他方法吗?好象join可以多表连接查询,但是没想出来怎样写语句   

如果在一个LEFT JOIN中没有右表的匹配记录,一个所有列设置为NULL的行被用于右表。你可以使用这个事实指出表中在另一个表中没有对应记录的记录: 
mysql> select table1.* from table1 
LEFT JOIN table2 ON table1.id=table2.id 
where table2.id is NULL; 

这个例子找出在table1中所有的行,其id值在table2中不存在(即,所有table1中的在table2中没有对应行的行)。当然这假定table2.id被声明为NOT NULL。 

==== 
摘自mySql中文参考手册

 

实例

SELECT `a`.`hotelid` FROM `hotel_citys` `a` LEFT JOIN `hotel_jiages` `b` ON
`a`.`hotelid` = `b`.`hotelid` WHERE `b`.`hotelid` IS NULL

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值