怎么连接两张表mysql
时间 : 2023-07-24 21:15:01声明: : 文章内容来自网络,不保证准确性,请自行甄别信息有效性
在MySQL中,使用多种方法可以连接两张表。下面介绍两种常用的连接方式:内连接和外连接。
1. 内连接:
内连接返回两个表中满足连接条件的行。常见的内连接有三种方式:等值连接、不等值连接和自连接。
(1)等值连接(INNER JOIN):
等值连接是基于一个或多个相等条件将两张表中的记录进行匹配。
```sql
SELECT 列名
FROM 表1
INNER JOIN 表2
ON 表1.列名 = 表2.列名;
例如,有两张表Goods和Orders,它们的列分别为Goods_ID、Goods_Name和Order_ID、Order_Date。要查询商品名称和订购日期:
```sql
SELECT Goods_Name, Order_Date
FROM Goods
INNER JOIN Orders
ON Goods.Goods_ID = Orders.Goods_ID;
(2)不等值连接:
不等值连接是基于不相等的条件将两张表中的记录进行匹配。可以使用大于、小于、大于等于、小于等于等运算符来连接两个表。
```sql
SELECT 列名
FROM 表1
INNER JOIN 表2
ON 表1.列名 运算符 表2.列名;
例如,有两张表Goods和Orders,它们的列分别为Goods_ID、Goods_Name和Price、Goods_ID。要查询商品价格大于等于1000的商品的名称和价格:
```sql
SELECT Goods_Name, Price
FROM Goods
INNER JOIN Orders
ON Goods.Goods_ID = Orders.Goods_ID
WHERE Price >= 1000;
(3)自连接:
自连接是指连接同一张表的两个实例。需要使用别名来区分两个实例。
```sql
SELECT 列名
FROM 表 AS 别名1
INNER JOIN 表 AS 别名2
ON 别名1.列名 = 别名2.列名;
例如,有一张表Employee,它的列为Employee_ID、Employee_Name和Manager_ID。要查询员工及其所属经理的姓名:
```sql
SELECT e.Employee_Name, m.Employee_Name AS Manager_Name
FROM Employee AS e
INNER JOIN Employee AS m
ON e.Manager_ID = m.Employee_ID;
2. 外连接:
外连接返回两个表中满足连接条件的行以及没有匹配的行。常见的外连接有左外连接和右外连接。
(1)左外连接(LEFT JOIN):
左外连接返回左表中的所有行,以及满足连接条件的右表中的匹配行。如果右表中没有匹配的行,则用NULL填充。
```sql
SELECT 列名
FROM 表1
LEFT JOIN 表2
ON 表1.列名 = 表2.列名;
例如,有两张表Goods和Orders,它们的列分别为Goods_ID、Goods_Name和Order_ID、Order_Date。要查询所有商品及其订购日期,包括没有订购日期的商品:
```sql
SELECT Goods_Name, Order_Date
FROM Goods
LEFT JOIN Orders
ON Goods.Goods_ID = Orders.Goods_ID;
(2)右外连接(RIGHT JOIN):
右外连接返回右表中的所有行,以及满足连接条件的左表中的匹配行。如果左表中没有匹配的行,则用NULL填充。
```sql
SELECT 列名
FROM 表1
RIGHT JOIN 表2
ON 表1.列名 = 表2.列名;
例如,有两张表Goods和Orders,它们的列分别为Goods_ID、Goods_Name和Order_ID、Order_Date。要查询所有订购记录及其商品名称,包括没有商品名称的记录:
```sql
SELECT Goods_Name, Order_Date
FROM Goods
RIGHT JOIN Orders
ON Goods.Goods_ID = Orders.Goods_ID;
以上是连接两张表的常用方法,在实际应用中可以根据具体的情况选择合适的连接方式。
https/SSL证书广告优选IDC>>
推荐主题模板更多>>
推荐文章