join查询的7中方法
手写顺序:
SELECT DISTINCT
FROM
JOIN ON
WHERE
GROUP BY
HAVING
ORDER BY
LIMIT
MySQL执行顺序
FROM
ON
JOIN
WHERE
GROUP BY
HAVING
DISTINCT
ORDER BY
LIMIT
join连接方式:
内连接:
SELECT FROM TableA A INNER JOIN TableB B ON A.Key = B.Key
左连接:
SELECT FROM TableA A LEFT JOIN TableB B ON A.Key = B.Key
右连接:
SELECT FROM TableA A RIGHT JOIN TableB B ON A.Key = B.Key
只有A
SELECT FROM TableA A LEFT JOIN TableB B ON A.Key = B.Key WHERE B.Key IS NULL
只有B
SELECT FROM TableA A RIGHT JOIN TableB B ON A.Key = B.Key WHERE A.Key IS NULL
全连接
# MySQL没有FULL OUTER语法。
SELECT FROM TableA A LEFT JOIN TableB B ON A.Key = B.Key
union
SELECT FROM TableA A RIGHT JOIN TableB B ON A.Key = B.Key;
A,B各自独有:
# MySQL没有FULL OUTER语法。
SELECT FROM TableA A LEFT JOIN TableB B ON A.Key = B.Key WHERE B.Key IS NULL
union
SELECT FROM TableA A RIGHT JOIN TableB B ON A.Key = B.Key WHERE A.Key IS NULL;