【发布时间】:2014-04-17 05:08:24
【问题描述】:
我有一个具有以下结构的表:
| pid | email | email_type |
| 1 | x | 1 |
| 1 | y | 2 |
| 1 | z | 3 |
| 2 | ab | 1 |
| 3 | cd | 2 |
现在我想要pid 参数的结果,格式仅适用于email_type[1 & 2]:
案例pid=1
| pid | email_p | email_w |
| 1 | x | y |
案例pid=2
| 2 | ab | NULL |
案例pid=3
| 3 | NULL | cd |
这里email_p代表email_type=1&email_w代表email_type=2
我正在使用以下查询,除了 pid=2 的情况外,它工作正常。案例 I 和案例 III 已成功获取。请提供一些具有良好解释的解决方案(如果可能的话)。
SELECT `e`.`pid`, `e`.`email` AS `email_p`, `e1`.`email` AS `email_w` FROM `table1` AS `e` LEFT JOIN `table1` AS `e1` ON e.pid=e1.pid AND e1.email_type=2 WHERE (e.pid IN (1) AND e.email_type=1)
当e.pid = 2 失败并返回空结果集&请提供解决方案e.pid IN (1,2,3) 适用于所需格式。#MYSQL
【问题讨论】: