mysql不使用join的多表联查
时间: 2024-02-01 15:03:05 浏览: 25
可以使用子查询或者UNION来实现多表联查而不使用JOIN操作。
1. 使用子查询
例如,我们需要查询订单表和客户表中的数据,可以使用以下SQL语句:
```
SELECT order_id, customer_name
FROM orders
WHERE customer_id IN (
SELECT customer_id
FROM customers
WHERE city = 'Beijing'
);
```
这个SQL语句首先从customers表中选择城市为“Beijing”的所有客户ID,然后将这些ID用于orders表的customer_id列中,最后返回order_id和customer_name列的值。
2. 使用UNION
另一种方法是使用UNION操作符将多个SELECT语句组合在一起。例如,我们需要查询订单表和客户表中的数据,可以使用以下SQL语句:
```
SELECT order_id, customer_name
FROM orders, customers
WHERE orders.customer_id = customers.customer_id AND customers.city = 'Beijing'
UNION
SELECT order_id, customer_name
FROM orders, customers
WHERE orders.customer_id = customers.customer_id AND customers.city = 'Shanghai';
```
这个SQL语句首先使用WHERE子句将订单表和客户表进行联接,然后使用UNION操作符将两个SELECT语句组合在一起,返回order_id和customer_name列的值。