二,SQL联接
2.1、( INNER )JOIN…ON…语句,
-
INNER JOIN…ON…语句,仅提取两个表中都存在的数据
-
需要注意的是,必须在SELECT语句中指定列所来自的每个表。
-
实体关系图中主键(PK)是表中的唯一列,是每个表的第一列。在大多数数据库中,主键通常是表中的第一列。 外键(FK) 是表中的一列,它是另一张表中的主键。 每个外键都连接到另一个表的主键。
-
SQL连接两个表,一个在FROM中,另一个在JOIN中。ON始终使PK等于FK。
-
当将表联接在一起时,最好给每个表一个别名。通常,别名只是表名的第一个字母。
# 联接2个表
SELECT A.col1,B.col2
FROM tb_nameA A
JOIN tb_nameB B
ON A.col1 = B.col2
WHERE A.col1 = value1;
# 联接3个表
SELECT A.col1,B.col2,C.col3
FROM tb_nameA A
JOIN tb_nameB B
ON A.col1 = B.col2
JOIN tb_nameC C
ON B.col3 = C.col1;
2.2、LEFT JOIN语句,
- LEFT JOIN语句,提取FROM中表的所有行以及符合条件的数据。
SELECT A.col1,B.col1
FROM tb_nameA A
LEFT JOIN tb_nameB B
ON A.col1 = B.col1;
2.3、RIGHT JOIN语句
- RIGHT JOIN语句,提取JOIN中表的所有行以及符合条件的数据。
SELECT A.col1,B.col1
FROM tb_nameA A
RIGHT JOIN tb_nameB B
ON A.col1 = B.col1;