1
我試圖嵌套一些查詢,但到目前爲止我找回錯誤1242:子查詢返回多於1行。我想要多行,因爲我正在處理一些記錄。嵌套的MySQL查詢w/concat和adddate
我有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函數將天服務添加到開始日期
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;
嗯,我寧願不變量,但我想你像這樣的代碼,它不適用於我: SELECT(CONCAT_WS(' - ',(SELECT yr_comm,mth_comm,day_comm FROM ministry)))+ INTERVAL(SELECT MONTH(CURDATE()))DAY as date_left – user2005926