Mysql - 导致数据与数据库中的数据无关
问题描述:
这是我的sql查询来总结数据库中的错误数。是什么导致下面的问题是,当我检查这里的可用数据时,它会检索给出的实际和正确的数据,如果我给出了任何错误(即表中不可用的数据)输入,则它不会提供任何结果抛出任何输出屏幕:Mysql - 导致数据与数据库中的数据无关
SELECT
SUM(IF(ieb.errortype_id='1',1,0)) AS Total_Critical,
SUM(IF(ieb.errortype_id='2',1,0)) AS Total_Non_critical,
u.emp_id,
u.emp_name
FROM
issueerror_empmap iem,
issueerror_body ieb,
USER u,
issueerror_type iet
WHERE
ieb.chapter_id = '424262' AND
iem.chapter_errorid=ieb.chapter_errorid AND
iem.emp_id = u.emp_id AND
u.emp_id = '693' AND
ieb.errortype_id=iet.errortype_id
GROUP BY
iem.emp_id,
u.emp_name
ORDER BY
iem.emp_id
任何一个可以请建议我如何建立这个查询,如果可以检索数据并显示输出为空,如果输入的数据不可用在表中。
为了生产输出对上述查询是(如果在一个表中可用的数据):
Total_Critical Total_Non_Critical emp_id emp_name
4 10 xxx xxx
为了生产输出对上述查询是(如果在表中没有可用的数据):
Total_Critical Total_Non_Critical emp_id emp_name
我期待emp_id和emp_name的错误计数为空或零。
答
这个查询怎么样?
select
sum (Total_Critical) as Total_Critical,
sum(Total_Non_critical) as Total_Non_critical,
emp_id,
emp_name from
(
(SELECT
SUM(IF(ieb.errortype_id='1',1,0)) AS Total_Critical,
SUM(IF(ieb.errortype_id='2',1,0)) AS Total_Non_critical,
u.emp_id,
u.emp_name
FROM
issueerror_empmap iem,
issueerror_body ieb,
USER u,
issueerror_type iet
WHERE
ieb.chapter_id = '424262' AND
iem.chapter_errorid=ieb.chapter_errorid AND
iem.emp_id = u.emp_id AND
u.emp_id = '693' AND
ieb.errortype_id=iet.errortype_id
GROUP BY
iem.emp_id,
u.emp_name
ORDER BY
iem.emp_id)
) UNION ALL (
select 0,0,null, null
)
) as tbl1
未来,您是否可以尝试格式化查询以提高可读性?这次我为你做了。 – 2012-02-14 05:12:01