我有一个查询。在这个查询中,我使用了一个子查询来从具有不同条件的同一个表中获取数据,并且在主要查询中,我提到了用于在子查询中获取数据的ID,并将条件表示为在主查询中考虑与ID不应该是空的。如果我在主查询中使用带有IN子句的单个ID,我的查询可以正常工作,但是如果我在主查询中使用多个ID并添加值不应该为空的子句,则查询不会给我所需的结果。这是我的查询哪里条件不适用于IN子句
SELECT e.id AS `Personal Number`,
e.date AS `Date`,
CONCAT(ep.firstname,' ',ep.lastname) AS `Employee Name`,
IF(ep.sex='M','Male','Female') AS sex,
DATE_FORMAT(p.birthdate,'%m/%d/%Y')AS birthdate,
(SELECT `value` FROM employee_data WHERE history=87 AND DATE=e.date) AS `A`,
(SELECT `value` FROM employee_data WHERE history=603 AND DATE=e.date) AS `B`,
(SELECT `value` FROM employee_data WHERE history=82 AND DATE=e.date) AS `C`,
(SELECT `value` FROM employee_data WHERE history=86 AND DATE=e.date) AS `D`
FROM tbl e
INNER JOIN employee ep ON e.id = ep.id
INNER JOIN tbl2 ap ON ap.date=e.date
INNER JOIN employee_data AS phd ON e.date = phd.date
WHERE (phd.history IN(82,87,603,86) AND phd.value!='') AND ap.date BETWEEN '2013-01-01' AND '2013-09-01'AND e.status!='cancelled'.
我不知道如何处理这个查询。任何人都可以帮忙在此先感谢
也发布你的表结构。 –
你有一次subqueried相同的ID? –
什么是phd.value!=''我认为你在这里错了 – harsh4u