我正在尝试嵌套一些查询,但到目前为止我得到了错误 1242:子查询返回超过 1 行。我想要不止一行,因为我正在处理许多记录。
我有 2 张桌子。一个的开始日期存储在 3 列中;yr_comm、mth_comm、day_comm。第二个表有一个服务期(以年为单位),表示为一个整数(2.71、3.45 等)。
我需要获取此开始日期(来自表 1),并添加服务期限(来自表 2)以获得结束日期,但我只需要显示年份。
我有 2 个单独的查询工作得很好,它们会产生所需的值,但是我在组合查询以获得所需的最终结果时遇到了麻烦。
查询 1:将 3 个开始值连接成日期格式
SELECT concat_ws('-', yr_comm, mth_comm, day_comm) AS date_comm
FROM table 1
查询 2:将整数 yrs_service 转换为天数
SELECT format(yrs_served * 365, 0) AS days_served
FROM table 2
查询3:使用date_add函数将days服务添加到开始日期
SELECT date_add(date_comm, INTERVAL days_served DAY) AS date_left
谁能建议我如何实现上述目标?提前谢谢了。
编辑 - 这是我正在处理的完整查询:
SELECT prime_minister.pm_name, yr_comm, party, ADDDATE(
(SELECT CONCAT_WS('-', yr_comm, mth_comm, day_comm) FROM ministry), INTERVAL
(SELECT FORMAT(yrs_served * 365, 0) FROM prime_minister) YEAR) AS date_left
FROM ministry JOIN prime_minister USING (pm_name)
WHERE party NOT LIKE '%labor%'
AND prime_minister.pm_name = ministry.pm_name
ORDER BY pm_name;