Schema at Fiddle
结果是:我想要获取具有'PRE‘和/或’msr_name‘的记录
id | msr_name1(only pre) | msr_data1(only pre) | msr_name2(only post) | msr_data2(only post)
16703 PRE pre_data POST post_data
16711 PRE pre_data NULL NULL
16715 NULL NULL POST post_data发布于 2013-03-06 14:13:52
SELECT a.id AS id,
b.msr_name AS msr_name1, b.msr_data AS msr_data1,
c.msr_name AS msr_name2, c.msr_data AS msr_data2
FROM (SELECT DISTINCT id FROM Students WHERE msr_name IN ('PRE', 'POST')) AS a
LEFT JOIN Students AS b ON (a.id=b.id AND b.msr_name = 'PRE')
LEFT JOIN Students AS c ON (a.id=c.id AND c.msr_name = 'POST');我的输出结果是:
+-------+-----------+-----------+-----------+-----------+
| id | msr_name1 | msr_data1 | msr_name2 | msr_data2 |
+-------+-----------+-----------+-----------+-----------+
| 16703 | PRE | pre_data | POST | post_data |
| 16711 | PRE | pre_data | NULL | NULL |
| 16715 | NULL | NULL | POST | post_data |
+-------+-----------+-----------+-----------+-----------+
SQL Fiddle Demo
https://stackoverflow.com/questions/15240136
复制相似问题