mysql中两表的连接查询
时间: 2023-11-19 17:54:57 浏览: 85
MySQL中两表的连接查询是通过JOIN关键字实现的。连接查询可以分为内连接、左连接、右连接和全连接。其中,内连接是指只返回两个表中匹配的行,左连接是指返回左表中所有行和右表中匹配的行,右连接是指返回右表中所有行和左表中匹配的行,而全连接则是返回两个表中所有的行。连接查询的语法格式如下:
SELECT <select_list> FROM <left_table> <join_type> JOIN <right_table> ON <join_condition> WHERE <where_condition> GROUP BY <group_by_list> HAVING <having_condition> ORDER BY <order_by_condition> LIMIT <limit_number>
其中,<join_type>可以是INNER、LEFT、RIGHT或FULL,分别对应内连接、左连接、右连接和全连接。而<join_condition>则是连接条件,用于指定两个表之间的关联关系。
举个例子,如果我们要查询表A和表B中dept_no相同的行,可以使用以下SQL语句:
SELECT A.*, B.* FROM A INNER JOIN B ON A.dept_no = B.dept_no;
这条语句使用了内连接,只返回了两个表中dept_no相同的行。如果我们要返回左表A中所有的行和右表B中dept_no相同的行,可以使用左连接:
SELECT A.*, B.* FROM A LEFT JOIN B ON A.dept_no = B.dept_no;
这条语句使用了左连接,返回了左表A中所有的行和右表B中dept_no相同的行。如果我们要返回右表B中所有的行和左表A中dept_no相同的行,可以使用右连接:
SELECT A.*, B.* FROM A RIGHT JOIN B ON A.dept_no = B.dept_no;
这条语句使用了右连接,返回了右表B中所有的行和左表A中dept_no相同的行。如果我们要返回两个表中所有的行,可以使用全连接:
SELECT A.*, B.* FROM A FULL JOIN B ON A.dept_no = B.dept_no;
这条语句使用了全连接,返回了两个表中所有的行。
阅读全文