2024年1月20日发(作者:)
sqlite3 join语句
一、什么是JOIN语句
JOIN是SQL中用于合并两个或多个表的操作。它通过使用共同的列将相关的行组合在一起,从而实现数据的联接。在SQLite中,JOIN语句有多种类型,包括INNER JOIN、LEFT JOIN、RIGHT
JOIN和FULL JOIN等。
二、INNER JOIN
INNER JOIN也称为等值连接,它返回两个表中满足连接条件的所有行。以下是INNER JOIN的几种常见用法:
1. 查询订单表和客户表,返回订单表中所有的订单号、客户姓名和订单日期:
```sql
SELECT D, erName,
ate
FROM Orders
INNER JOIN Customers
ON erID = erID;
```
2. 查询订单表和产品表,返回订单表中所有的订单号、产品名称和产品价格:
```sql
SELECT
FROM Orders
INNER JOIN Products
ON tID = tID;
```
D, tName,
3. 查询订单表和客户表,返回订单表中所有的订单号、客户姓名和订单日期,但只包括客户表中存在的客户:
```sql
SELECT D, erName,
ate
FROM Orders
INNER JOIN Customers
ON erID = erID
WHERE erID IS NOT NULL;
```
4. 查询订单表和产品表,返回订单表中所有的订单号、产品名称和产品价格,但只包括产品表中存在的产品:
```sql
SELECT D, tName,
FROM Orders
INNER JOIN Products
ON tID = tID
WHERE tID IS NOT NULL;
```
5. 查询订单表和产品表,返回订单表中所有的订单号、产品名称和产品价格,但只包括订单表和产品表中都存在的订单:
```sql
SELECT
FROM Orders
INNER JOIN Products
ON tID = tID
WHERE tID IS NOT NULL;
```
D, tName,
三、LEFT JOIN
LEFT JOIN也称为左连接,它返回左表中的所有行,以及右表中满足连接条件的行。如果右表中没有匹配的行,则返回NULL值。以下是LEFT JOIN的几种常见用法:
1. 查询订单表和客户表,返回订单表中所有的订单号、客户姓名和订单日期,如果客户表中没有对应的客户,则返回NULL值:
```sql
SELECT D, erName,
ate
FROM Orders
LEFT JOIN Customers
ON erID = erID;
```
2. 查询订单表和产品表,返回订单表中所有的订单号、产品名称和产品价格,如果产品表中没有对应的产品,则返回NULL值:
```sql
SELECT
FROM Orders
LEFT JOIN Products
ON tID = tID;
```
D, tName,
3. 查询订单表和客户表,返回订单表中所有的订单号、客户姓名和订单日期,如果客户表中没有对应的客户,则返回NULL值,但只包括客户表中存在的客户:
```sql
SELECT D, erName,
ate
FROM Orders
LEFT JOIN Customers
ON erID = erID
WHERE erID IS NOT NULL;
```
4. 查询订单表和产品表,返回订单表中所有的订单号、产品名称和产品价格,如果产品表中没有对应的产品,则返回NULL值,但只包括产品表中存在的产品:
```sql
SELECT
FROM Orders
LEFT JOIN Products
ON tID = tID
WHERE tID IS NOT NULL;
```
D, tName,
5. 查询订单表和产品表,返回订单表中所有的订单号、产品名称和产品价格,如果订单表中没有对应的订单,则返回NULL值,但只
包括订单表中存在的订单:
```sql
SELECT
FROM Orders
LEFT JOIN Products
ON tID = tID
WHERE tID IS NOT NULL;
```
D, tName,
四、RIGHT JOIN
RIGHT JOIN也称为右连接,它返回右表中的所有行,以及左表中满足连接条件的行。如果左表中没有匹配的行,则返回NULL值。以下是RIGHT JOIN的几种常见用法:
1. 查询订单表和客户表,返回客户表中所有的客户姓名、订单号和订单日期,如果订单表中没有对应的订单,则返回NULL值:
```sql
SELECT erName, D,
ate
FROM Customers
RIGHT JOIN Orders
ON erID = erID;
```
2. 查询订单表和产品表,返回产品表中所有的产品名称、订单号和产品价格,如果订单表中没有对应的订单,则返回NULL值:
```sql
SELECT
FROM Products
RIGHT JOIN Orders
ON tID = tID;
```
tName, D,
3. 查询订单表和客户表,返回客户表中所有的客户姓名、订单号和订单日期,如果订单表中没有对应的订单,则返回NULL值,但只包括订单表中存在的订单:
```sql
SELECT erName, D,
ate
FROM Customers
RIGHT JOIN Orders
ON erID = erID
WHERE erID IS NOT NULL;
```
4. 查询订单表和产品表,返回产品表中所有的产品名称、订单号和产品价格,如果订单表中没有对应的订单,则返回NULL值,但只包括订单表中存在的订单:
```sql
SELECT
FROM Products
RIGHT JOIN Orders
ON tID = tID
WHERE tID IS NOT NULL;
```
tName, D,
5. 查询订单表和产品表,返回产品表中所有的产品名称、订单号和产品价格,如果产品表中没有对应的产品,则返回NULL值,但只包括产品表中存在的产品:
```sql
SELECT
FROM Products
RIGHT JOIN Orders
ON tID = tID
WHERE tID IS NOT NULL;
tName, D,
```
五、FULL JOIN
FULL JOIN也称为全连接,它返回左表和右表中的所有行,并将满足连接条件的行组合在一起。如果左表或右表中没有匹配的行,则返回NULL值。以下是FULL JOIN的几种常见用法:
1. 查询订单表和客户表,返回订单表和客户表中所有的订单号、客户姓名和订单日期,如果订单表或客户表中没有对应的记录,则返回NULL值:
```sql
SELECT D, erName,
ate
FROM Orders
FULL JOIN Customers
ON erID = erID;
```
2. 查询订单表和产品表,返回订单表和产品表中所有的订单号、产品名称和产品价格,如果订单表或产品表中没有对应的记录,则返回NULL值:
```sql
SELECT D, tName,
FROM Orders
FULL JOIN Products
ON tID = tID;
```
3. 查询订单表和客户表,返回订单表和客户表中所有的订单号、客户姓名和订单日期,如果订单表或客户表中没有对应的记录,则返回NULL值,但只包括订单表和客户表中存在的记录:
```sql
SELECT D, erName,
ate
FROM Orders
FULL JOIN Customers
ON erID = erID
WHERE erID IS NOT NULL OR
erID IS NOT NULL;
```
4. 查询订单表和产品表,返回订单表和产品表中所有的订单号、产品名称和产品价格,如果订单表或产品表中没有对应的记录,则返回NULL值,但只包括订单表和产品表中存在的记录:
```sql
SELECT
FROM Orders
D, tName,
FULL JOIN Products
ON tID = tID
WHERE tID IS NOT NULL OR
tID IS NOT NULL;
```
5. 查询订单表和产品表,返回订单表和产品表中所有的订单号、产品名称和产品价格,如果订单表和产品表中没有对应的记录,则返回NULL值,但只包括订单表和产品表中存在的记录:
```sql
SELECT
FROM Orders
FULL JOIN Products
D, tName,
发布者:admin,转转请注明出处:http://www.yc00.com/news/1705739585a1420154.html
评论列表(0条)