【发布时间】:2021-03-31 02:52:16
【问题描述】:
我想从某个子查询中获取数据,但它只返回 SQL 错误 [1242] [21000]:子查询返回超过 1 行,我的代码有问题吗?
SELECT
u.id user_id, p.id user_profileid, p.firstname, p.lastname,
IFNULL((SELECT SUM(ROUND((DATEDIFF(end_date, start_date) / 365))) FROM employee_experience WHERE user_profileid = p.id GROUP BY user_profileid),0) AS experience,
(SELECT jobtitle FROM employee_experience WHERE end_date IN (SELECT MAX(end_date) FROM employee_experience GROUP BY user_profileid) AND user_profileid = p.id) AS last_jobtitle,
IFNULL((SELECT lastsalary FROM employee_experience WHERE end_date IN (SELECT MAX(end_date) FROM employee_experience GROUP BY user_profileid) AND user_profileid = p.id),0) AS last_salary
FROM
users u
LEFT JOIN employee_profile p ON (u.id = p.user_id)
LEFT JOIN employee_experience e ON (p.id = e.user_profileid)
WHERE
(u.roleid = '2') and (u.isverified = '1')
GROUP BY
u.id, p.id
【问题讨论】: