你好Guyz我有一张如下表
+-------------+-----------+-------+
| stdid | csid | score |
+-------------+-----------+-------+
| 20090204001 | CSC111_ca | 20 |
| 20090204001 | CSC111_EX | 10 |
| 20090204002 | CSC111_ca | 58 |
| 20090204002 | CSC111_EX | 3 |
| 20090204003 | CSC111_ca | 64 |
| 20090204003 | CSC111_EX | 45 |
| 20090204004 | CSC111_ca | 21 |
| 20090204004 | CSC111_EX | 11 |
| 20090204005 | CSC111_ca | 59 |
| 20090204005 | CSC111_EX | 4 |
| 20090204006 | CSC111_ca | 65 |
| 20090204006 | CSC111_EX | 46 |
| 20090204007 | CSC111_ca | 22 |
| 20090204007 | CSC111_EX | 12 |
| 20090204008 | CSC111_ca | 60 |
| 20090204008 | CSC111_EX | 5 |
| 20090204009 | CSC111_ca | 66 |
| 20090204009 | CSC111_EX | 47 |
| 20090204010 | CSC111_ca | 23 |
| 20090204010 | CSC111_EX | 13 |
| 20090204011 | CSC111_ca | 61 |
| 20090204011 | CSC111_EX | 6 |
| 20090204012 | CSC111_ca | 67 |
| 20090204012 | CSC111_EX | 48 |
| 20090204013 | CSC111_ca | 24 |
| 20090204013 | CSC111_EX | 14 |
| 20090204014 | CSC111_ca | 62 |
| 20090204014 | CSC111_EX | 7 |
| 20090204015 | CSC111_ca | 68 |
| 20090204015 | CSC111_EX | 49 |
| 20090204016 | CSC111_ca | 25 |
| 20090204016 | CSC111_EX | 15 |
| 20090204017 | CSC111_ca | 63 |
| 20090204017 | CSC111_EX | 8 |
| 20090204018 | CSC111_ca | 69 |
| 20090204018 | CSC111_EX | 50 |
| 20090204019 | CSC111_ca | 26 |
| 20090204019 | CSC111_EX | 16 |
| 20090204020 | CSC111_ca | 64 |
| 20090204020 | CSC111_EX | 9 |
| 20090204021 | CSC111_ca | 70 |
| 20090204021 | CSC111_EX | 51 |
| 20090204022 | CSC111_ca | 27 |
| 20090204022 | CSC111_EX | 17 |
| 20090204023 | CSC111_ca | 65 |
| 20090204023 | CSC111_EX | 10 |
| 20090204024 | CSC111_ca | 71 |
| 20090204024 | CSC111_EX | 52 |
| 20090204025 | CSC111_ca | 28 |
| 20090204025 | CSC111_EX | 18 |
| 20090204026 | CSC111_ca | 66 |
| 20090204026 | CSC111_EX | 11 |
| 20090204027 | CSC111_ca | 72 |
| 20090204027 | CSC111_EX | 53 |
+-------------+-----------+-------+
我想选择以便我能拥有 使用mysql的一个表上的stdid,csc111_ca_score,csc111_EX_score
答案 0 :(得分:0)
您可以尝试使用此方法使用笛卡尔积
select t1.stdid,
case when t1.csid = 'CSC111_EX' then t1.score
else t2.score end
as csc111_EX_score,
case when t1.csid = 'CSC111_ca' then t1.score
else t2.score end
as csc111_ca_score
from your_table t1, your_table t2
where t1.stdid = t2.stdid and t1.score != t2.score and t1.csid != t2.csid
group by t1.stdid