JOIN - 用于根据两个或多个表中的列之间的关系,从这些表中查询数据。
语法:SELECT columnName(s) FROM tableName1 JOIN tableName2 -- 查询出n1*n2行,无相交条件
SELECT columnName(s) FROM tableName1 JOIN tableName2 WHERE tableName1.col1=tableName2.col2 -- 查询出max(n1,n2)行,有相交条件
INNER JOIN - 表中存在至少一个匹配时,返回行。
语法:SELECT columnName(s) FROM tableName1 INNER JOIN tableName2 ON tableName1.col1=tableName2.col2 -- 查询出max(n1,n2)行。
与SELECT columnName(s) FROM tableName1 JOIN tableName2 WHERE tableName1.col1=tableName2.col2相同
LEFT JOIN - 从左表返回所有行,即使右表中没有匹配的行
语法:SELECT columnName(s) FROM tableName1 LEFT JOIN tableName2 ON tableName1.col1=tableName2.col2 -- 查询出n1行。
RIGHT JOIN - 从右表返回所有行,即使左表中没有匹配的行
语法:SELECT columnName(s) FROM tableName1 RIGHT JOIN tableName2 ON tableName1.col1=tableName2.col2 -- 查询出n2行。
FULL JOIN - 从左表和右表那里返回所有的行
语法:SELECT columnName(s) FROM tableName1 FULL JOIN tableName2 ON tableName1.col1=tableName2.col2 -- 查询出t1和t2匹配的行n+(n1-n)+(n2-n)