[英]Err1242 - sub query returns more than 1 row
此腳本可能有什么問題? 我收到錯誤
“ [Err] 1242-子查詢返回多於1行”。
如何解決這個問題? 謝謝!
SELECT
j.id AS JobID,
CASE WHEN j.id = (SELECT o.attachment_id from origins o where o.attachment_type="Job" AND o.alliance_partner_id = 12) then "Channel 1"
WHEN j.id = (SELECT o.attachment_id from origins o where o.attachment_type="Job" AND o.alliance_partner_id = 15) then "Channel 2"
WHEN j.id = (SELECT t.record_id FROM tracked_records t where t.record_type = 'Job') then "Channel 3"
WHEN j.id = (SELECT r.job_id from job_referrers r where r.url IN ('ios','android')) then "Channel 4"
END AS "Channels"
FROM jobs j
GROUP BY j.id
;
語法上修復查詢的一種方法是對每個子SELECT
使用WHERE IN
:
SELECT j.id AS JobID,
CASE WHEN j.id IN (SELECT o.attachment_id from origins o where o.attachment_type="Job" AND o.alliance_partner_id = 12) THEN "Channel 1"
WHEN j.id IN (SELECT o.attachment_id from origins o where o.attachment_type="Job" AND o.alliance_partner_id = 15) THEN "Channel 2"
WHEN j.id IN (SELECT t.record_id FROM tracked_records t where t.record_type = 'Job') THEN "Channel 3"
WHEN j.id IN (SELECT r.job_id from job_referrers r where r.url IN ('ios','android')) THEN "Channel 4"
END AS "Channels"
FROM jobs j
GROUP BY j.id
請注意,雖然這可以使查詢運行,但從邏輯上講,它可能與您最初的意圖不符。 因此,您應該在這里重新嘗試要實現的目標。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.