sql之JOIN完全用法
作者:admin 日期:2011-06-20
JOIN连接组合两个表中的字段记录,包括三种: LEFT JOIN运算式:连接组合两个表中的字段记录,并将包含了LEFT JOIN左边表中的全部记录。 RIGHT JOIN运算式:连接组合两个表中的字段记录,并将包含了RIGHT JOIN右边表中的全部记录。 INNER JOIN语法如下: FROM 表1 INNER JOIN 表2 ON 表1.字段1 比较运算子 表2.字段2 两个表连接的字段,譬如 [表1.字段1=表2.字段2],必须具有相同的字段类型,但是字段名称不需要相同。 例如,自动编号字段类型可以连接Long 的字段类型,但是单精整数字段类型不能连接双精整数的字段类型。 比较运算子可为=、<、>、<=、>=、或<>。 JOIN连接的字段,不可以包含MEMO字段类型或OLE对象类型,否则会发生错误。 在一个JOIN表达式中,可以连结多个ON子句: Select fields JOIN表达式中,可以为巢状式: Select fields 在一个INNER JOIN中,可以包括巢状式的LEFT JOIN或RIGHT JOIN,但是在一个LEFT JOIN或RIGHT JOIN中不能包括巢状式的INNER JOIN。 条件 : 假设在 city 列上联接 authors 表和 publishers 表。 使用左向外联接 : FROM authors a LEFT OUTER JOIN publishers p ON a.city = p.city 特点 : 不管第二个表中是否有匹配的数据,结果将包含第一个表中的所有行。 使用右向外联接 : FROM authors a RIGHT OUTER JOIN publishers p ON a.city = p.city 特点 : 不管第一个表中是否有匹配的数据,结果将包含第二个表中的所有行。
INNER JOIN运算式:连接组合两个表中的字段记录。
INNER JOIN设定两个表相关连的运算式,以连接组合两个表中的字段记录。
FROM 表1 INNER JOIN 表2
ON 表1.字段1 比较运算子 表2.字段1 AND
ON 表1.字段2 比较运算子 表2.字段2) or
ON 表1.字段3 比较运算子 表2.字段3)
FROM 表1 INNER JOIN
(表2 INNER JOIN [( ]表3
[INNER JOIN [( ] 表x [INNER JOIN ...)]
ON 表3.字段3 比较运算子 表x.字段x)]
ON 表2.字段2 比较运算子 表3.字段3)
ON 表1.字段1 比较运算子 表2.字段2
sql 语句 : Select a.au_fname, a.au_lname, p.pub_name
sql语句 : Select a.au_fname, a.au_lname, p.pub_name
使用完整外部联接 :
sql语句 :
Select a.au_fname, a.au_lname, p.pub_nameFROM authors a FULL OUTER JOIN publishers pON a.city = p.city特点:显示两个表中的所有行,如果匹配,则写在一起,不匹配,则各自写null