ToB企服应用市场:ToB评测及商务社交产业平台

标题: MySQL——联表查询JoinON详解 [打印本页]

作者: 水军大提督    时间: 2024-9-21 16:16
标题: MySQL——联表查询JoinON详解
在 MySQL 中, JOIN  操作结合  ON  子句用于实现多表之间的数据关联,以便从多个相关表中获取所需的综合信息。

 JOIN  的重要类型及特点:

1.  INNER JOIN (内毗连):

- 这是最常见的毗连类型之一。
- 只有当两个表中指定的毗连列的值相匹配时,才会返回行。
- 即返回两个表的交集部门。
- 例如,假设有两个表  students (包罗  student_id  和  student_name  列)和  courses (包罗  course_id  和  student_id  列),要获取选修了课程的门生信息,可以这样写:

  1. SELECT s.student_id,
  2. s.student_name, c.course_id
  3. FROM students s INNER JOIN
  4. courses c ON s.student_id =
  5. c.student_id;
复制代码

2.  LEFT JOIN (左毗连):

- 以左表为根本,返回左表中的全部行。
- 对于右表,仅返回与左表毗连列匹配的行。如果右表中没有匹配的行,则对应右表的列值为  NULL 。
- 好比,若要获取全部门生及其选修课程的信息,纵然某些门生没有选修课程也要显示出来,可以这样写:

  1. SELECT s.student_id,
  2. s.student_name, c.course_id
  3. FROM students s LEFT JOIN
  4. courses c ON s.student_id =
  5. c.student_id;
复制代码

3.  RIGHT JOIN (右毗连):

- 与左毗连相反,以右表为根本。
- 返回右表中的全部行,对于左表,仅返回与右表毗连列匹配的行。若左表无匹配,则对应左表的列值为  NULL 。
- 示例:假假想获取全部课程及其选修门生的信息,纵然某些课程没有门生选修也要显示,可以这样写:

  1. SELECT s.student_id,
  2. s.student_name, c.course_id
  3. FROM students s RIGHT JOIN
  4. courses c ON s.student_id =
  5. c.student_id;
复制代码


在利用  ON  子句指定毗连条件时,需要清晰地定义两个表中用于关联的列之间的关系。关系可以是相等( = )、大于( > )、小于( < )、大于即是( >= )、小于即是( <= )、不即是( <>  或  != )等。

例如,如果要获取年事大于 18 岁的门生及其选修课程信息,可以这样写:

  1. SELECT s.student_id,
  2. s.student_name, c.course_id
  3. FROM students s INNER JOIN courses
  4. c ON s.student_id = c.student_id
  5. AND s.age > 18;
复制代码


此外,还可以利用多个条件进行毗连,例如:

  1. SELECT s.student_id,
  2. s.student_name, c.course_id
  3. FROM students s INNER JOIN courses
  4. c ON s.student_id = c.student_id
  5. AND s.age > 18 AND c.course_name =
  6. 'Math';
复制代码


总之,正确利用  JOIN  和  ON  子句可以机动、高效地从多个表中获取所需的数据,帮助你构建复杂但准确的查询语句来满足各种业务需求。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4