【发布时间】:2017-03-03 10:48:43
【问题描述】:
Given table:
create table borrower (
customer_number char ( 1 0 ) ,
loan_number char ( 1 0 ));
问题:查找共享客户“1234”拥有的所有贷款的每个客户的客户编号(即 ID)。如果客户编号为“1234”的客户有贷款“L1”和“L2”,则需要找到所有共享“L1”和“L2”的客户(包括客户“1234”)。
我在表中创建了 4 个条目,列 (customer_number, loan_number) 是 (1234, L1) (1234, L2) (1, LI)(1, L2)(2, L1)。我正在使用查询
select distinct customer_number
from borrower
where loan_number IN(
select loan_number
from borrower
where customer_number='1234'
但它正在检索输出,例如
1234, 1, 2
我的输出中只需要 1 和 1234(Customer_number),因为它是唯一一个同时具有贷款编号 L1 和 L2 的。 Cutsomer_number "2" 不与两个loan_number 相关联,因此它应该出现在输出中。
我也试过用“all”代替“IN”。
select distinct customer_number
from borrower
where loan_number= all(
select loan_number
from borrower
where customer_number='1234'
输出:没有
【问题讨论】:
-
Query using "IN" id select customer_number from borrower where loan_number IN (select loan_number from borrower where customer_number='1234') 此查询生成输出 1234、1234、1、1
-
在此期间我正在尝试寻找解决方案,您可以将您的示例数据放入rextester.com/l/mysql_online_compiler 以便其他人尝试。还可以编辑您的问题并在上述链接中使用更新的表格结构分享 URL
-
Query using "all" id select customer_number from borrower where loan_number = all (select loan_number from borrower where customer_number='1234') 此查询未检索到任何输出
-
@Hogan 我已经更新了这个问题。请再读一遍。
-
@user3827844 -- 啊,谢谢。现在这个问题说得通了。
标签: mysql sql database postgresql