首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的查询不起作用

为什么我的查询不起作用
EN

Stack Overflow用户
提问于 2013-02-17 19:57:08
回答 1查看 52关注 0票数 0

我的工作是连接来自多个表的数据。它的一部分是在包含“联合”的部分之前完成的。现在我必须从'migrated_loan_account‘表中获取数据。所以我加入了它。但是当我添加该字段时,它不起作用。当我注释这4个字段时,它起作用了。我不知道该怎么做。有人能帮我一下吗?!下面是我的代码:

代码语言:javascript
复制
` SELECT -- office_info.office_ref_code AS old_office_code
                        -- , office_info.office_code
                        -- , office_info.office_name
                        -- , project_info.project_ref_code AS old_project_code
                        -- , project_info.project_code
                        -- , project_info.project_name
                        -- ,
                        IFNULL(group_info.group_reference_number, '') AS old_group_code
                        , IFNULL(RIGHT(group_info.group_code, 5), '') AS group_code
                        , IFNULL(group_info.group_name, '') AS group_name
                        , IFNULL(member_info.reference_no, '') AS old_member_code
                        , RIGHT(member_info.member_no, 5) AS member_code
                        , member_info.member_name
                        , IFNULL(savings_account.savings_balance,0) AS savings_balance
                        , la.account_ref_no AS old_loan_no
                        , la.account_no AS loan_no
                        , loan_status.name AS loan_status
                        , DATE(la.disbursement_date) AS disbursement_date
                        , IFNULL(la.disbursed_amount,0) AS disbursed_amount
                        , IFNULL(la.outstanding_balance,0) AS loan_due
                        , IFNULL(la.principal_outstanding,0) AS principal_outstanding
                        , IFNULL(la.interest_outstanding,0) AS interest_outstanding
                        , IFNULL(la.interest_realizable,0) AS interest_realizable
                        , IFNULL(la.overdue_amount,0) AS overdue_amount
                        , IFNULL(migrated_loan_account.outstanding_balance, 0) AS radar_loan_due
                        , IFNULL(migrated_loan_account.principal_outstanding, 0) AS radar_principal_outstanding
                        , IFNULL(migrated_loan_account.interest_realizable, 0) AS radar_interest_realizable
                        , IFNULL(migrated_loan_account.overdue_amount, 0) AS radar_overdue_amount


                  FROM member_info
                  INNER JOIN office_info ON
                  (office_info.id = member_info.branch_info_id)
                  INNER JOIN country_head_office ON
                  (country_head_office.id = office_info.country_head_office_id)
                  INNER JOIN country ON
                  (country.id = country_head_office.office_country_id)
                  INNER JOIN project_info ON
                  (project_info.id = member_info.project_info_id)
                  INNER JOIN country_program_info ON
                  (country_program_info.id = project_info.program_info_id)
                  INNER JOIN program_info ON
                  (program_info.id = country_program_info.program_info_id)
                  LEFT JOIN group_info ON
                  (group_info.id = member_info.group_info_id)
                  LEFT JOIN savings_account ON
                  (savings_account.member_info_id= member_info.id)
                  LEFT JOIN loan_account AS la ON
                  (la.member_id = member_info.id)
                  INNER JOIN
                  (
                      SELECT member_id, MAX(disbursement_date) AS max_date
                      FROM loan_account
                      GROUP BY member_id
                  ) mla ON la.member_id = mla.member_id AND la.disbursement_date = mla.max_date
                  LEFT JOIN loan_status ON
                  (loan_status.id = la.loan_status_id)
                  LEFT JOIN migrated_loan_account ON
                  (migrated_loan_account.loan_account_id = la.id)
                   WHERE   country.id = 1   AND 1=1  AND  project_info.id = 'BI0000000000000000000001'  AND  office_info.id = 'BI0000000000000000000363'  

                  UNION

                  SELECT -- office_info.office_ref_code AS old_office_code
                        -- , office_info.office_code
                        -- , office_info.office_name
                        -- , project_info.project_ref_code AS old_project_code
                        -- , project_info.project_code
                        -- , project_info.project_name
                        -- ,
                        IFNULL(group_info.group_reference_number, '') AS old_group_code
                        , IFNULL(RIGHT(group_info.group_code, 5), '') AS group_code
                        , IFNULL(group_info.group_name, '') AS group_name
                        , IFNULL(member_info.reference_no, '') AS old_member_code
                        , RIGHT(member_info.member_no, 5) AS member_code
                        , member_info.member_name
                        , IFNULL(savings_account.savings_balance,0) AS savings_balance
                        , 'NO LOAN' AS old_loan_no
                        , '' AS loan_no
                        , '' AS loan_status
                        , NULL AS disbursement_date
                        , 0 AS disbursed_amount
                        , 0 AS loan_due
                        , 0 AS principal_outstanding
                        , 0 AS interest_outstanding
                        , 0 AS interest_realizable
                        , 0 AS overdue_amount
                      FROM member_info
                      INNER JOIN office_info ON
                      (office_info.id = member_info.branch_info_id)
                      INNER JOIN country_head_office ON
                      (country_head_office.id = office_info.country_head_office_id)
                      INNER JOIN country ON
                      (country.id = country_head_office.office_country_id)
                      INNER JOIN project_info ON
                      (project_info.id = member_info.project_info_id)
                      INNER JOIN country_program_info ON
                      (country_program_info.id = project_info.program_info_id)
                      INNER JOIN program_info ON
                      (program_info.id = country_program_info.program_info_id)
                      LEFT JOIN group_info ON
                      (group_info.id = member_info.group_info_id)
                      LEFT JOIN savings_account ON
                      (savings_account.member_info_id= member_info.id)
                       WHERE   country.id = 1   AND 1=1  AND  project_info.id = 'BI0000000000000000000001'  AND  office_info.id = 'BI0000000000000000000363'   AND member_info.id NOT IN (SELECT loan_account.member_id FROM loan_account)
                  ORDER BY -- old_office_code, old_project_code,
                      old_group_code, old_member_code;
              `

当我注释以下字段时,它可以正常工作。请帮忙快点..。

代码语言:javascript
复制
/*, ifnull(migrated_loan_account.outstanding_balance, 0) as radar_loan_due
                    , ifnull(migrated_loan_account.principal_outstanding, 0) as radar_principal_outstanding
                    , ifnull(migrated_loan_account.interest_realizable, 0) as radar_interest_realizable
                    , ifnull(migrated_loan_account.overdue_amount, 0) as radar_overdue_amount*/
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-17 20:00:15

如果你注释掉这些字段,它会起作用吗?在这些字段未注释的情况下,您的UNION中有这些字段吗?联合必须返回相同数量的列。

将以下内容添加到联盟的第二个查询中:

代码语言:javascript
复制
, 0 AS radar_loan_due
, 0 AS radar_principal_outstanding
, 0 AS radar_interest_realizable
, 0 AS radar_overdue_amount
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14920820

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档