繁体   English   中英

sql 查询以查找至少具有 2 种类型帐户的用户

[英]sql query to find users with at least 2 types of accounts

我是关系 sql 的新手。 我试图找出一个查询来返回拥有多种类型帐户的客户的姓名。

顾客:

+------------+--------------+ 
| cid        | Name         | 
+------------+--------------+ 
| 1          | Bob          |
| 2          | John         | 
| 3          | Jane         | 
+------------+--------------+ 

帐户:

+------------+--------------+ 
| aid        | type         | 
+------------+--------------+ 
| 1          | Checking     |
| 2          | Saving       | 
| 3          | CD           | 
+------------+--------------+ 

交易:

+------------+--------------+--------------+ 
| tid        | cid          | aid          | 
+------------+--------------+--------------+ 
| 1          | 1            | 1            | 
| 2          | 2            | 1            | 
| 3          | 1            | 2            | 
| 4          | 2            | 3            | 
| 5          | 3            | 1            | 
+------------+--------------+--------------+

有了这些表,查询应该返回 Bob 和 John。 我在编写这样的查询时遇到了一些麻烦。 更具体地说,如何在不向表中添加新列的情况下计算客户拥有的帐户数量,以及如何比较帐户是否不同?

好的,这似乎适用于我的测试数据结构的 SQL Fiddle。 用您的真实数据结构尝试一下,看看它是否能满足您的需求。

SELECT name FROM customers c WHERE EXISTS(
  SELECT DISTINCT aid FROM transactions
  WHERE cid = c.cid
  HAVING COUNT(DISTINCT aid)>1
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM