这条联合sql语句哪里错了

((( SELECT a.log_id,`create_date`,`content`,`creator`,`belong_to_user`,a.customer_code,`follow_up_way` 
FROM gs_log a left join gs_customer b on a.customer_code = b.customer_code WHERE 
( b.customer_code != '' AND b.customer_id = 2212 ) )) union (( SELECT a.log_id,`create_date`,`content`,`creator`,`belong_to_user`,`customer_code`,`follow_up_way` 
FROM gs_log a left join gs_r_customer_log on a.log_id = gs_r_customer_log.log_id WHERE ( gs_r_customer_log.customer_id= 2212 ) ))) limit 0,10

这条语句哪里错了,半天没找到,错误提示

[SQL]((( SELECT a.log_id,`create_date`,`content`,`creator`,`belong_to_user`,a.customer_code,`follow_up_way` 
FROM gs_log a left join gs_customer b on a.customer_code = b.customer_code WHERE 
( b.customer_code != '' AND b.customer_id = 2212 ) )) union (( SELECT a.log_id,`create_date`,`content`,`creator`,`belong_to_user`,`customer_code`,`follow_up_way` 
FROM gs_log a left join gs_r_customer_log on a.log_id = gs_r_customer_log.log_id WHERE ( gs_r_customer_log.customer_id= 2212 ) ))) limit 0,10

[Err] 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'union (( SELECT a.log_id,`create_date`,`content`,`creator`,`belong_to_user`,`cus' at line 3
阅读 2.6k
2 个回答

你括号加太多了,相当于最外面那层是(...) limit 0,10,只能是(...) union (...) limit 0,10

(( SELECT a.log_id,`create_date`,`content`,`creator`,`belong_to_user`,a.customer_code,`follow_up_way` 
    FROM gs_log a left join gs_customer b on a.customer_code = b.customer_code WHERE 
    ( b.customer_code != '' AND b.customer_id = 2212 ) ))
  union 
(( SELECT a.log_id,`create_date`,`content`,`creator`,`belong_to_user`,`customer_code`,`follow_up_way` 
    FROM gs_log a left join gs_r_customer_log on a.log_id = gs_r_customer_log.log_id WHERE ( gs_r_customer_log.customer_id= 2212 ) ))
 limit 0,10

建议分步排查。


不知道谁选的答案没帮助?分步排查的意思是将大的SQL语句拆分为多个小SQL语句排查。估计是他没有领悟到。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题