sql语句根据条件判断执行不同的left join
时间: 2023-07-12 14:40:11 浏览: 69
在SQL中,可以使用LEFT JOIN语句根据条件判断执行不同的关联语句。基本语法如下:
```
SELECT column1, column2, ...
FROM table1
LEFT JOIN table2
ON condition
AND CASE
WHEN condition1 THEN 1
WHEN condition2 THEN 2
...
ELSE 0
END = 1
```
其中,condition是LEFT JOIN条件,condition1、condition2等是要判断的条件,当条件成立时,将对应的CASE语句的结果设置为1,否则为0。例如,以下SQL语句可以根据订单的状态,连接不同的表:
```
SELECT o.order_id, o.customer_id, p.product_name, s.supplier_name
FROM orders o
LEFT JOIN products p
ON o.product_id = p.product_id
AND CASE
WHEN o.order_status = 1 THEN 1
WHEN o.order_status = 2 THEN 2
ELSE 0
END = 1
LEFT JOIN suppliers s
ON o.supplier_id = s.supplier_id
AND CASE
WHEN o.order_status = 3 THEN 1
WHEN o.order_status = 4 THEN 2
ELSE 0
END = 1
```
这段代码中,当订单状态为1或2时,连接products表,否则连接suppliers表。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)