三表左连接查询是SQL语句中常见的一种查询方式。它可以在多张表中查找符合条件的结果,并将多张表的数据以特定的关联方式进行合并,以得到更为完整的信息。
下面介绍三表左连接查询的SQL语句写法和实例:
SQL语句写法:
SELECT A.*, B.*, C.*
FROM table_A A
LEFT JOIN table_B B ON A.id = B.a_id
LEFT JOIN table_C C ON B.id = C.b_id
该语句中,table_A
、table_B
、table_C
是要查询的三个表,A、B、C 是表的别名,A.id
、B.a_id
、C.b_id
是表之间的关联字段。*
表示查询出每个表中所有的字段。
这里的 LEFT JOIN
在连接两个表时,左边的表(table_A
)都会显示出来,右边的表(table_B
、table_C
)匹配不上的将显示为 NULL。
示例一:
假设有三张表,分别是学生表(student
)、学校表(school
)和课程表(course
)。学生表中包含学生的ID、姓名、学校ID,学校表中包含学校的ID和名称,课程表中包含课程的ID、名称和学校ID。现在需要查询出每个学生所在学校及该学校所开设的课程。
表结构如下:
- 学生表(
student
) - id
- name
- school_id
- 学校表(
school
) - id
- name
- 课程表(
course
) - id
- name
- school_id
查询语句如下:
SELECT s.id AS student_id, s.name AS student_name, sc.id AS school_id, sc.name AS school_name, c.id AS course_id, c.name AS course_name
FROM student s
LEFT JOIN school sc ON s.school_id = sc.id
LEFT JOIN course c ON c.school_id = sc.id
以上查询语句会返回每个学生所在学校及该学校所开设的课程。
示例二:
假设有三张表,分别是订单表(order
)、商品表(product
)和类别表(category
)。订单表中包含订单的ID、商品ID和数量,商品表中包含商品的ID、名称和类别ID,类别表中包含类别的ID和名称。现在需要查询每个订单所包含的商品及每个商品所属的类别。
表结构如下:
- 订单表(
order
) - id
- product_id
- quantity
- 商品表(
product
) - id
- name
- category_id
- 类别表(
category
) - id
- name
查询语句如下:
SELECT o.id AS order_id, o.quantity, p.id AS product_id, p.name AS product_name, c.id AS category_id, c.name AS category_name
FROM order o
LEFT JOIN product p ON o.product_id = p.id
LEFT JOIN category c ON p.category_id = c.id
以上查询语句会返回每个订单所包含的商品及每个商品所属的类别。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:三表左连接查询的sql语句写法 - Python技术站