我的需求:
我要查询acc_repay.repayment_plan表的term为0、term_status为UNDUE、term_penalty大于0数据,并且acc_repay.repayment_plan表的due_bill_no存在于acc_cus.cus_user_base表
先看一个反面例子:
提问: MySQL根据acc_cus.cus_user_base表的due_bill_no字段,查询出acc_repay.repayment_plan表的term为0、term_status为UNDUE、term_penalty大于0数据,请你编写sql,用中文回答 回答:
根据acc_cus.cus_user_base表的due_bill_no字段,查询出acc_repay.repayment_plan表的term为0、term_status为UNDUE、term_penalty大于0数据的SQL语句如下:
SELECT *
FROM acc_repay.repayment_plan
WHERE term = 0
AND term_status = 'UNDUE'
AND term_penalty > 0;
这个结果不符合我的需求。
优化提问
提问:
MySQL从acc_cus.cus_user_base表的due_bill_no字段,acc_repay.repayment_plan表也存在due_bill_no字段,两个表通过due_bill_no字段关联,查询出acc_repay.repayment_plan表中存在acc_cus.cus_user_base表due_bill_no,并且的term为0、term_status为UNDUE、term_penalty大于0数据,请你编写SQL,用中文回答
回答:
根据acc_cus.cus_user_base表的due_bill_no字段和acc_repay.repayment_plan表的due_bill_no字段进行关联查询,筛选出acc_repay.repayment_plan表中满足以下条件的数据:term为0、term_status为UNDUE、term_penalty大于0。
SQL语句如下:
SELECT *
FROM acc_repay.repayment_plan
WHERE due_bill_no IN (
SELECT due_bill_no
FROM acc_cus.cus_user_base
)
AND term = 0
AND term_status = 'UNDUE'
AND term_penalty > 0;
标签:Bito,acc,term,更好,cus,no,bill,due,如何
From: https://blog.51cto.com/u_13372349/7684137