首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >一个简单的嵌套SQL语句

一个简单的嵌套SQL语句
EN

Stack Overflow用户
提问于 2013-06-23 22:10:04
回答 4查看 336关注 0票数 0

我在SQL中有一个问题,我正在尝试解决。我知道答案很简单,但我就是答不对。我有两张桌子,一张是顾客,另一张是订单。这两个表是使用customer_id连接的。问题是列出所有没有下订单的客户!这个问题是在地理信息系统桌面软件中运行的,因此并不是所有的MapInfo命令都适用于该程序。换句话说,如果我得到的不仅仅是解决这个问题的方法,我将心存感激。

这是我一直在想的:

代码语言:javascript
运行
复制
SELECT customer_id 
from customers
WHERE order_id not in (select order_id from order) 
   and customer.customer_id = order.customer_id
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-06-23 22:12:23

这样如何:

代码语言:javascript
运行
复制
SELECT * from customers
WHERE customer_id not in (select customer_id from order)

逻辑是,如果我们没有customer_id in order,这意味着客户从未下过订单。正如您已经提到的,customer_id是公用键,因此上面的查询应该获取所需的结果。

票数 2
EN

Stack Overflow用户

发布于 2013-06-23 22:12:24

代码语言:javascript
运行
复制
SELECT c.customer_id 
FROM customers c
LEFT JOIN orders o ON (o.customer_id = c.customer_id)
WHERE o.order_id IS NULL
票数 0
EN

Stack Overflow用户

发布于 2013-06-23 22:16:51

..。NOT EXISITS方式:

代码语言:javascript
运行
复制
SELECT * FROM customers
WHERE NOT EXISTS ( 
  SELECT * FROM orders
  WHERE orders.customer_id = customer.customer_id
)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17261547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档