联接中的列

JOIN 运算符通过将一个表中的值与另一个表中的值进行比较来匹配行。 由您决定应匹配每个表中的哪些行。 有几种选择:

  • 相关列   通常,通过匹配存在外键关系的列中的值来联接表。 例如,可以通过匹配各个表中的 stor_id 值将折扣与商店联接。 得到的 SQL 可能像下面这样:

    SELECT *
    FROM discounts INNER JOIN stores 
         ON stores.stor_id = discounts.stor_id
    

    有关在相关列上联接表的更多信息,请参见自动联接表

  • 不相关的列   也可通过匹配不存在外键关系的列中的值来联接表。 例如,可以通过匹配各个表中州的值将出版商与作者联接。 在这类联接输出的结果集内,每一行描述一对位于同一个州的作者/出版商对。

    SELECT au_lname, 
           au_fname, 
           pub_name, 
           authors.state
    FROM   authors INNER JOIN publishers 
                   ON authors.state 
                    = publishers.state
    

    有关在不相关的列上联接表的更多信息,请参见手动联接表

也请注意可使用多列匹配联接表中的行。 例如,若要查找由位于同一城市的作者和出版商组成的作者/出版商对,请使用联接操作匹配两个表中的各个州列和各个城市列。 需要既匹配城市又匹配州,因为不同的州可能有同名的城市(例如,伊利诺斯州的 Springfield 和麻萨诸塞州的 Springfield)。

有关在多列上联接表的更多信息,请参见在多列上联接表

请参见

参考

联接属性

其他资源

设计查询和视图