Mysql多条件语句

时间:2014-12-08 15:02:07

标签: mysql conditional-statements

我的mysql查询有问题

SELECT 
    li.town,li.county,li.postCode,


IF(ca.qCode = '123456', ca.qCode_ans, 0) AS '123456',
IF(ca.qCode = '254668', ca.qCode_ans, 0) AS '254668',
IF(ca.qCode = '11234456', ca.qCode_ans, 0) AS '11234456'

FROM lead_info AS li 
LEFT JOIN call_info AS ci ON ci.leadID = li.leadID
LEFT JOIN cust_ans AS ca ON ca.callRecording = ci.callRecording

+ ---- + ---------- + --------- + ---------- + --------- + ------------
城镇|国家|邮编| 123456 | 254668 | 11234456
+ ---- + ---------- + --------- + ---------- + --------- + - ---------
Malan | Malasia | 9999999 |是的| 0 | 0
+ ---- + ---------- + --------- + ---------- + --------- + - ---------
Malan | Malasia | 9999999 | |没有| 0
+ ---- + ---------- + --------- + ---------- + --------- + - ---------
Malan | Malasia | 9999999 | | |也许是 + ---- + ---------- + --------- + ---------- + --------- + - ---------

我需要的是

+ ---- + ---------- + --------- + ---------- + --------- + ------------
城镇|国家|邮编| 123456 | 254668 | 11234456
+ ---- + ---------- + --------- + ---------- + --------- + - ---------
Malan | Malasia | 9999999 |是的|没有|也许
+ ---- + ---------- + --------- + ---------- + --------- + - ---------

真的需要你的帮助。提前感谢你。

1 个答案:

答案 0 :(得分:0)

您可以使用MAX聚合:

执行此操作
SELECT li.town, li.county, li.postCode,
  MAX(IF(ca.qCode = '123456', ca.qCode_ans, 0)) AS `123456`,
  MAX(IF(ca.qCode = '254668', ca.qCode_ans, 0)) AS `254668`,
  MAX(IF(ca.qCode = '11234456', ca.qCode_ans, 0)) AS `11234456`
FROM lead_info AS li 
LEFT JOIN call_info AS ci ON ci.leadID = li.leadID
LEFT JOIN cust_ans AS ca ON ca.callRecording = ci.callRecording
GROUP BY li.town, li.county, li.postCode
相关问题