SQL速成(3)join连接

(1)INNER JOIN(与JOIN同)表中存在至少一个匹配时,INNER JOIN 关键字返回行。

SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2 
ON table_name1.column_name=table_name2.column_name

(2) LEFT JOIN 关键字会从左表 (table_name1) 那里返回所有的行,即使在右表 (table_name2) 中没有匹配的行(用NULL填充)。

SELECT column_name(s)
FROM table_name1
LEFT JOIN table_name2 
ON table_name1.column_name=table_name2.column_name

(3) RIGHT JOIN 关键字会右表 (table_name2) 那里返回所有的行,即使在左表 (table_name1) 中没有匹配的行。

SELECT column_name(s)
FROM table_name1
RIGHT JOIN table_name2 
ON table_name1.column_name=table_name2.column_name

(4)FULL JOIN  只要其中某个表存在匹配,FULL JOIN 关键字就会返回行。注意:在MYSQL中不存在全连接,但可以通过合并左右连接得到

SELECT column_name(s)
FROM table_name1
FULL JOIN table_name2 
ON table_name1.column_name=table_name2.column_name
MYSQL中如下:
SELECT persons.LastName, persons.FirstName, orders.OrderNo
FROM persons
LEFT JOIN orders ON persons.Id_P = orders.Id_P
UNION
SELECT persons.LastName, persons.FirstName, orders.OrderNo
FROM persons
RIGHT JOIN orders ON persons.Id_P = orders.Id_P

你可能感兴趣的:(数据库技术)