SELECT CUST.TEL_1
,(SELECT GROUP_CONCAT(T4.CUSTOMER_ID) FROM 
(SELECT T1.CUSTOMER_ID AS CUSTOMER_ID FROM  JHF_CUSTOMER T1 WHERE (T1.TEL_1=CUST.TEL_1  OR T1.FAX_1=CUST.TEL_1) AND T1.CUSTOMER_ID<>CUST.CUSTOMER_ID
  UNION SELECT T2.CUSTOMER_ID AS CUSTOMER_ID FROM  JHF_PERSONAL T2 WHERE (T2.MOBILE_1=CUST.TEL_1 OR T2.TEL_2=CUST.TEL_1 OR  T2.FAX_2=CUST.TEL_1 ) AND T2.CUSTOMER_ID<>CUST.CUSTOMER_ID 
  UNION SELECT T3.CUSTOMER_ID AS CUSTOMER_ID FROM  JHF_ARTIFICIAL T3 WHERE (T3.CHARGE_MAN_TEL=CUST.TEL_1 OR  T3.CHARGE_MAN_MOBILE=CUST.TEL_1) AND T3.CUSTOMER_ID<>CUST.CUSTOMER_ID) T4
  ) AS TEL_1_SAME_ID
FROM TABLE_NAME AS CUST;这样是不能使用CUST.TEL_1在子查询中做过滤的 有什么办法解决么,求指教。

解决方案 »

  1.   

    如果去掉这层查询:SELECT GROUP_CONCAT(T4.CUSTOMER_ID) FROM
    则CUST.TEL_1在子查询中可以使用
      

  2.   

    这样是不能使用CUST.TEL_1在子查询中做过滤的:详细说明
      

  3.   

    执行的时候会报错:unknow clomun CUST.TEL_1 in where clause
      

  4.   

    SELECT CUST.TEL_1 
    , (SELECT T1.CUSTOMER_ID AS CUSTOMER_ID FROM JHF_CUSTOMER T1 ,TABLE_NAME AS CUST WHERE (T1.TEL_1=CUST.TEL_1 OR T1.FAX_1=CUST.TEL_1) AND T1.CUSTOMER_ID<>CUST.CUSTOMER_ID ) a
       FROM TABLE_NAME AS CUST;
    能否运行
      

  5.   

    这个应该是可以运行 但这个TABLE_NAME其实不是一个表  而是一个非常复杂的关连查询 这样做伤不起啊