SQL SELECT创建联结

SQL SELECT创建联结,创建联结非常简单,指定要联结的所有表以及关联它们的方式即可。请看下面的例子:

    SELECT vend_name, prod_name, prod_price
    FROM Vendors, Products
    WHERE Vendors.vend_id = Products.vend_id;

输出结果:

    vend_name                   prod_name                   prod_price
    --------------------      --------------------      ----------
    Doll House Inc.            Fish bean bag toy          3.4900
    Doll House Inc.            Bird bean bag toy          3.4900
    Doll House Inc.            Rabbit bean bag toy       3.4900
    Bears R Us                  8 inch teddy bear          5.9900
    Bears R Us                  12 inch teddy bear        8.9900
    Bears R Us                  18 inch teddy bear        11.9900
    Doll House Inc.            Raggedy Ann                 4.9900
    Fun and Games               King doll                   9.4900
    Fun and Games               Queen doll                  9.4900

我们来看这段代码。SELECT语句与前面所有语句一样指定要检索的列。这里最大的差别是所指定的两列(prod_name和prod_price)在一个表中,而第一列(vend_name)在另一个表中。

现在来看FROM子句。与以前的SELECT语句不一样,这条语句的FROM子句列出了两个表:Vendors和Products。它们就是这条SELECT语句联结的两个表的名字。这两个表用WHERE子句正确地联结,WHERE子句指示DBMS将Vendors表中的vend_id与Products表中的vend_id匹配起来。

可以看到,要匹配的两列指定为Vendors.vend_id和Products.vend_id。这里需要这种完全限定列名,如果只给出vend_id,DBMS就不知道指的是哪一个(每个表中有一个)。从前面的输出可以看到,一条SELECT语句返回了两个不同表中的数据。

警告:完全限定列名
就像前面提到的,在引用的列可能出现歧义时,必须使用完全限定列名(用一个句点分隔表名和列名)。如果引用一个没有用表名限制的具有歧义的列名,大多数DBMS会返回错误。

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!

 

SQL教程