如何将记录统一在一行中-MYSQL
P粉475315142
P粉475315142 2023-09-09 09:11:47
0
1
374

我有一个teacher表,还有一个phone表,其中链接是通过人员的 ID 进行的。当我查找每位教授的电话号码时,显示如下:

(SELECT T.ID_TEACHER, P.PHONE, P.NUMBER FROM TEACHER T LEFT JOIN PHONES P ON P.IDPERSON = T.ID_TEACHER)
ID_TEACHER 电话 NUMBER
1 1 xxxxxxx
1 2 xxxxxxxx
1 3 xxxxxxx
2 1 xxxxxxx

但是,我希望它显示如下:

ID_TEACHER 电话 NUMBER 电话 NUMBER 电话 NUMBER
1 1 xxxxx 2 xxxxx 3 xxxxx
2 1 xxxxxxxxx

我该怎么办?我正在使用MYSQL。我没有找到解决方案。

P粉475315142
P粉475315142

全部回复 (1)
P粉476046165

您需要使用条件聚合:

尝试以下操作:

SELECT T.ID_TEACHER, MAX(CASE WHEN P.PHONE = 1 THEN P.PHONE ELSE NULL END) AS PHONE1, MAX(CASE WHEN P.PHONE = 1 THEN P.NUMBER ELSE NULL END) AS NUMBER1, MAX(CASE WHEN P.PHONE = 2 THEN P.PHONE ELSE NULL END) AS PHONE2, MAX(CASE WHEN P.PHONE = 2 THEN P.NUMBER ELSE NULL END) AS NUMBER2, MAX(CASE WHEN P.PHONE = 3 THEN P.PHONE ELSE NULL END) AS PHONE3, MAX(CASE WHEN P.PHONE = 3 THEN P.NUMBER ELSE NULL END) AS NUMBER3 FROM TEACHER T LEFT JOIN PHONES P ON P.IDPERSON = T.ID_TEACHER GROUP BY T.ID_TEACHER
    最新下载
    更多>
    网站特效
    网站源码
    网站素材
    前端模板
    关于我们 免责声明 Sitemap
    PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!