Mysql查询返回带有Union Join的BLOB

时间:2012-04-11 15:34:03

标签: mysql blob union

当我在mysql中运行Union查询时,一些值返回为BLOB,有没有办法解决这个问题? 我将查询联合起来,因为我希望特定列的总和位于底部

select a.app_file_id,a.app_trn,a.app_fname,a.app_lname,l.computer_interest,l.loan_life,l.app_ln_amnt, l.commit_date,l.app_amnt_owed,r.amount_paid
from applicant a
left join loan l on   l.l_app_file_id=a.app_file_id
left join receipt r on r.r_app_file_id=l.l_app_file_id
WHERE l.app_loan_type=r.receipt_loan_type
AND l.app_loan_type='Computer Loan'
AND  MONTHNAME(commit_date) = 'April'
and YEAR(commit_date)=2012

Union
Select '', '','','','','',SUM(l.app_ln_amnt),'',SUM(l.app_amnt_owed),SUM(r.amount_paid)
from applicant a
left join loan l on   l.l_app_file_id=a.app_file_id
left join receipt r on r.r_app_file_id=l.l_app_file_id
WHERE l.app_loan_type=r.receipt_loan_type
AND l.app_loan_type='Computer Loan'
AND  MONTHNAME(commit_date) = 'April'
and YEAR(commit_date)=2012

2 个答案:

答案 0 :(得分:2)

在UNION的第一个查询中,第二列是INT,而在第二个查询中,它是一个空字符串,它不是有效的INT。同样,第5,第6和第8列。

答案 1 :(得分:0)

在联合中避免blob的一种简单方法是使用格式。考虑以下示例

EG:

select "string 1","string 2","string 3" from dual
union
select "string 1",format(sum(1+2),0),"string 3" from dual

但我不建议这样做。使结果列类型在所有联合中完全相同,并避免使用格式来避免结果中的“BLOB”

select "string 1",0 "string 2","string 3" from dual
union
select "string 1",sum(1+2),"string 3" from dual