SQL自然联结

SQL自然联结,无论何时对表进行联结,应该至少有一列不止出现在一个表中(被联结的列)。标准的联结(参考内联结)返回所有数据,相同的列甚至多次出现。自然联结排除多次出现,使每一列只返回一次。

怎样完成这项工作呢?答案是,系统不完成这项工作,由你自己完成它。自然联结要求你只能选择那些唯一的列,一般通过对一个表使用通配符(SELECT*),而对其他表的列使用明确的子集来完成。下面举一个例子:

    SELECT C.*, O.order_num, O.order_date,
            OI.prod_id, OI.quantity, OI.item_price
    FROM Customers AS C, Orders AS O,
          OrderItems AS OI
    WHERE C.cust_id = O.cust_id
      AND OI.order_num = O.order_num
      AND prod_id = 'RGAN01';

提示:Oracle中没有AS
Oracle用户应该记住去掉AS。

在这个例子中,通配符只对第一个表使用。所有其他列明确列出,所以没有重复的列被检索出来。

事实上,我们迄今为止建立的每个内联结都是自然联结,很可能永远都不会用到不是自然联结的内联结。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!

 

SQL教程