连接查询、join查询

阅读量: 106 编辑

连接查询、join查询

连接查询:用于表与表之间关系的查询

一般通过where子句通过两个有关系的字段进行关联查询数据(比如主键和外键); 返回的数据一定是有关系的数据,无关系的数据不会返回。

left join:用于表与表之间关系的查询,但是返回的数据包含左边表的冗余数据

right join:用于表与表之间关系的查询,但是返回的数据包含右边表的冗余数据

语法

-- 连接查询
SELECT t1.field, t2.field
FROM table1 [AS] t1 , table2 [AS] t2
WHERE t1.field1 = t2.field2

-- left join on 查询
SELECT t1.field, t2.field
FROM t1 left join t2 on t1.field1 = t2.field2

-- right join on 查询
SELECT *
FROM t1 right join t2 on t1.field1 = t2.field2

1. 可以用 AS 使用别名,当然 AS 也可以省略
2. 不止是两个表,三个表、四个表也可以一起连接查询
3. left join 和 right join 可以配合 WHERE 一起使用

代码实战

代码的详细解读,可以参考视频教程

SELECT t1.`code`, t1.`name`, t2.`name`, t2.classify
FROM classify t1 , course t2
WHERE t1.`code` = t2.classify;

SELECT t1.`code`, t1.`name`, t2.`name`, t2.classify
FROM classify t1 LEFT JOIN course t2 ON t1.`code` = t2.classify;

SELECT t1.`code`, t1.`name`, t2.`name`, t2.classify
FROM classify t1 RIGHT JOIN course t2 ON t1.`code` = t2.classify
where t2.free = 1;