Mysql Where In子句获取错误1224操作数应仅包含1列

Mysql Where In子句获取错误1224操作数应仅包含1列,mysql,Mysql,关于列名和表名,下面的查询是正确的。客户可以有两种主动联系方式:电话号码和电子邮件。电话号码和电子邮件地址位于父表customer的子表中。关于如何使用IN子句,我显然遗漏了一些东西。有人能帮我吗 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的子表中。关于如何使用IN子句,我显然遗漏了一些东西。有人能帮我吗

  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)
IN子句的工作原理是这样的,其中X在X,Y,Z中。其中X,Y,Z是要查找的内容的列表。您拥有的是customer_name在customer_id_1、customer_name_1、customer_id_2、customer_name_2中的位置


问题是,您正在将客户名称包括在要查看的内容列表中。错误消息告诉您,要查找的内容列表必须只有一列,因此只需从子查询的SELECT中删除c.name即可

非常感谢你。我知道我错过了一些简单的事情。