我想上面的问题已被问过几次......我仍然无法在我的查询中实现它..在下面的查询中,有一个服务表,其中包含几个员工的员工ID临时表....每个员工可能在不同的地方工作..因此每个员工可能有不止一个记录..我试图找出最后一个帖子的详细信息...但在第三行我得到提到的错误..如果我使用“IN”而不是等于..我为每个员工ID获得多条记录
SELECT
s.employee_id,
s.from,
s.to
FROM
service s, temp t
WHERE
t.employee_id = s.employee_id
AND s.postnumber = (SELECT max(s1.postnumber)
FROM service s1, temp t1
WHERE t1.employee_id = s.employee_id)
ORDER BY
t.employee_id;
答案 0 :(得分:2)
您的子查询中的条件有错误:t1.employee_id=s.employee_id
并在子查询中尝试distinct
。
试试这个:
select s.employee_id,s.from,s.to from service s,temp t
where t.employee_id=s.employee_id
and s.postnumber = (select distinct max(s1.postnumber) from service s1,temp t1 where t1.employee_id=s1.employee_id)
order by t.employee_id;
答案 1 :(得分:1)
如果您没有在SELECT子句中使用任何列,可以告诉我加入表'temp'的重点是什么。
尝试将其放入EXISTS子句中。