三个表通过相同的id查询信息排除掉相同信息SQL语句
时间: 2023-09-27 13:04:21 浏览: 35
抱歉,我可以回答这个问题。你可以使用以下 SQL 语句:
SELECT *
FROM table1 t1, table2 t2, table3 t3
WHERE t1.id = t2.id
AND t2.id = t3.id
AND t1.some_column <> t2.some_column
AND t2.some_column <> t3.some_column
AND t1.some_column <> t3.some_column;
相关问题
数据库中查询没有买苹果的客户姓名,字段分别在三个表
好的,那么可以使用以下 SQL 语句来查询没有购买苹果的客户姓名:
```
SELECT customer.name
FROM customer
WHERE customer.id NOT IN (
SELECT purchase.customer_id
FROM purchase
INNER JOIN product ON purchase.product_id = product.id
WHERE product.name = '苹果'
)
```
假设客户信息存储在 `customer` 表中,购买信息存储在 `purchase` 表中,产品信息存储在 `product` 表中。以上 SQL 语句使用了子查询和联结表的方式,先查出购买了苹果的客户 ID,然后从客户表中排除这些客户,最终得到没有购买苹果的客户姓名。
book表中有id, name,num三个字段,根据name分组,将每组最小id的数据的num加到该组其他num上,select查询语句
可以使用以下SQL语句实现:
```
UPDATE book b
INNER JOIN (
SELECT name, MIN(id) AS min_id, SUM(num) AS sum_num
FROM book
GROUP BY name
) t
ON b.name = t.name
SET b.num = b.num + t.sum_num
WHERE b.id != t.min_id;
```
该语句的作用是,先计算出每个name分组中最小id的数据,并将该组的num求和,然后将这个求和结果加到该组其他数据的num上。需要注意的是,由于最小id的数据已经包含在求和结果中了,因此需要在更新时排除这些数据。
相关推荐
![](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)