[英]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.