我有三个表,客户,帐户和订单。
客户可以拥有多个订单,因此订单具有customer_id外键。
客户可以拥有多个帐户,但只有一个帐户才能拥有客户,因此该帐户具有customer_id外键。
表帐户有一个名为defaulter的属性,可以是TRUE或FALSE。
希望进行以下查询:
可以用SQL完成还是需要PLSQL?
谢谢
答案 0 :(得分:2)
不需要PL / SQL。可以使用简单的SQL DQL查询来完成此查询。
无论哪种,
将客户加入帐户两次,寻找符合“违规帐户”标准的不同帐户(针对同一客户),或
将客户加入帐户一次并使用GROUP BY(在客户上)HAVING COUNT> = 2,其中符合“违规帐户”条件,或
将客户加入帐户,客户为GROUP,并在符合COUNT(CASE ..)的“违约帐户”条件时应用合计COUNT。使用外部查询选择COUNT> = 2的时间,或将聚合计数移动到WHERE子句中。
如果需要找到“正好两个”(或另一个数字),后两种方法更灵活,HAVING COUNT可能是最惯用的。