SQL基础十一【联结表】

本文介绍了SQL中的联结操作,包括内联结和如何通过WHERE子句匹配不同表中的列。举例说明了如何从多个表中检索特定信息,如查找订购特定产品的客户列表,同时解释了没有联结条件时产生的笛卡尔积情况。内容涵盖了从基本的表联结到复杂查询的实现。
摘要由CSDN通过智能技术生成
  1. 创建联结
    select vend_name,prod_name,prod_price
    from vendors,products
    where vendors.vend_id=products.vend_id;

    select语句与前面所有语句一样指定要检索的列。这里最大的区别是指定的两列(prod_name和prod_price)在一个表中,而第三列在(vend_name)在另一个表中。
    而from子句列出了两个表vendors,products,这是要联结的表。
    where子句表明将vendors中的vend_id与products表中的vend_id匹配起来.使用的是完全限定列名。

  2. 笛卡儿积
    由没有联结条件的表关系返回的结果为笛卡尔积。检索出的行的数目将是第一个表中的行数乘以第二个表中的行数。

  3. 内联结
    基于两个表之间的相等测试的这种联结也称为内联结。

  4. 联结多个表
    SQL不限制一条select语句中可以联结的表的数目。创建联结的基本规则:首先列出所有的表,然后定义表之间的关系。
    在这里插入图片描述 利用上面的关系表“返回订购产品RGAN01的顾客列表”,
    嵌套查询:
    select cust_name,cust_contact
    from customers
    where cust_id In (select cust_id
    from orders
    where order_num in(select order_num
    from orderItems
    where prod_id=‘RGAN01’))

    内联结:
    select cust_name,cust_contact
    from customers,orders,orderitems
    where customers.cust_id = order.cust_id
    AND orderitems.order_num = orders.order_num
    AND prod_id=‘RGAN01’

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值