SQL语句跨表查询

1.使用关键字"IN"
SELECT *
FROM bms_dsl_PortConsumerBind a
WHERE (ConsumerID IN
          (SELECT ConsumerID
         FROM bms_dsl_ConsumerInfo b
         WHERE (b.Name = '空') OR
               (b.Name = '坏')))
2.使用关键字"ANY"
SELECT *
FROM bms_dsl_PortConsumerBind a
WHERE (ConsumerID = ANY
          (SELECT ConsumerID
         FROM bms_dsl_ConsumerInfo b
         WHERE (b.Name = '空') OR
               (b.Name = '坏')))
使用关键字"in"和"ANY",区别在于ANY前面需要加"=",子查询语句是完全一致
3.使用关键字"EXISTS" 使用"EXISTS"关键在于两表关联语句,如:下列例子 a.ConsumerID = b.ConsumerID
SELECT *
FROM bms_dsl_PortConsumerBind a
WHERE EXISTS
          (SELECT ConsumerID
         FROM bms_dsl_ConsumerInfo b
         WHERE a.ConsumerID = b.ConsumerID AND ((b.Name = '空') OR
               (b.Name = '坏')))
使用关键字"in"和"ANY" 与使用"EXISTS"的区别,结构上的差别:EXISTS前面是不需要有列名的,并且在子查询
语句的条件中的必须增加两表关联语句
4.不使用任何关键字(经过测试ODBC中是不可用的),所以可以使用添加关键字"ANY"取代
SELECT *
FROM bms_dsl_PortConsumerBind a
WHERE (ConsumerID =
          (SELECT ConsumerID
         FROM bms_dsl_ConsumerInfo b
         WHERE (b.Name = '空') OR
               (b.Name = '坏')))
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值