Mysql子查询问题

标签 mysql mysql-error-1054

  • 贷款(列:id,用户)
  • 返回(列:id、installment、scheduleDate)

如果一笔贷款要分12期还清,则有12 strip 贷款id的还款记录。

我想找出哪些用户的 scheduleDate 的所有返回之和大于 2000。

SELECT user 
FROM {loans} ka 
WHERE 
(
   SELECT MAX(inst) FROM 
   (
        SELECT SUM(installment) AS inst 
        FROM {payback} 
        WHERE id IN 
        (
            SELECT id 
            FROM {loans} 
            WHERE user = ka.user
        )  
   GROUP BY scheduleDate
   ) as t1 LIMIT 0,1
) > 2000

我收到错误: “where 子句”中的未知列“ka.user”

最佳答案

这是否按要求工作?它假定 payback.id 是引用 loads.id 的外键。

SELECT
  user, scheduleDate, sumInstallments
FROM
(
    SELECT
      l.user, pb.scheduleDate, SUM(pb.installment) AS sumInstallments
    FROM
      payback AS pb
    JOIN
      loans AS l
    ON
      l.id = pb.id
    GROUP BY
      l.user, pb.scheduleDate
) AS tempId
WHERE
  sumInstallments > 2000

关于Mysql子查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3850030/

相关文章:

mysql - 我可以在 SELECT 查询中重复使用计算字段吗?

mysql - 如何从以逗号分隔值存储的 MySQL 中选择当前周工作日期

MySQL:枚举和计数

mysql - '2' 中的未知列 'order clause'

mysql - 错误 : #1054 - Unknown column 'NOPL' in 'where clause' ?

5.0.12 更改后的 MySQL LEFT JOIN - 如何重写查询

java - 将相同的 auto_increment id 插入到两个不同的表中

mysql - Spring将文件路径插入mysql

mysql - Rails/MySQL : How to query for a record by its full 'created_at' timestamp?

mysql - SQL问题,LEFT JOIN [..] IN()