2017-04-10 62 views
0

以下查詢對於列名和表名是正確的。客戶可以有兩種聯繫他們的有效方法(電話號碼和電子郵件)。電話號碼和電子郵件地址位於父表客戶的子表中。我明顯錯過了關於如何使用IN子句的問題。有人能幫我嗎?Where In clause出錯#1224操作數應該只包含1列

SELECT 
DISTINCT cm.comm_method, cm.customer_id 
    FROM contact_method cm 
    WHERE cm.is_active = 'Y' 
    AND cm.customer_id IN 
     (SELECT oc.customer_id, c.name 
      FROM customer c 
    INNER JOIN org_customer oc ON c.customer_id = oc.customer_id 
      WHERE oc.org_id = $org_id) 

回答

1

IN子句的工作原理與WHERE X in (X, Y, Z)類似。其中X, Y, Z是要看的東西列表IN。你有什麼是WHERE customer_name in ((customer_id_1, customer_name_1), (customer_id_2, customer_name_2)

問題是,您要將顧客姓名列入要查找的物品列表中IN。該錯誤消息告訴你,要查找的內容列表IN必須只有1列,所以只需從子查詢的SELECT中取出c.name即可。

+0

非常感謝。我知道我錯過了一些簡單的事情。 – Tim

相關問題