Php 如何查询一个表以在一个表中获得两种类型的分数转储

Php 如何查询一个表以在一个表中获得两种类型的分数转储,php,mysql,laravel,Php,Mysql,Laravel,你好,伙计,我有一张像下面这样的桌子 +-------------+-----------+-------+ | stdid | csid | score | +-------------+-----------+-------+ | 20090204001 | CSC111_ca | 20 | | 20090204001 | CSC111_EX | 10 | | 20090204002 | CSC111_ca | 58 | | 20090204002 |

你好,伙计,我有一张像下面这样的桌子

+-------------+-----------+-------+
| 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 |
+-------------+-----------+-------+
我想选择这样我就可以
stdid、csc111_ca_分数、csc111_EX_分数仅在一个表上使用mysql

您可以尝试使用这种方法使用笛卡尔积

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

不管下面的答案是什么,数据显示问题最好在应用程序代码中解决——在本例中是一点PHP。这里有成千上万的例子,所以我不会再添加另一个。好的,谢谢你,我只是希望一个mysql查询可以为我得到这个结果,即使可能还有一个案例,课程将不仅仅是CSC_111_ca和CSC_111_ex。。我将一直考虑使用更多的php来处理iThanks,但这是我运行查询时得到的结果