簡體   English   中英

Err1242-子查詢返回多於1行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM