联接中的列
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)。
有关在多列上联接表的更多信息,请参见在多列上联接表。