繁体   English   中英

SQL查询多列顺序

[英]SQL query on multiple column order by

这里在3表X,Y,Z中。 如果我加入他们的行列,结果就像。

Subject   Semester   Attendee
---------------------------------
ITB001    1          John
ITB001    1          Bob
ITB001    1          Mickey
ITB001    2          Jenny
ITB001    2          James
MKB114    1          John
MKB114    1          Erica

但我想向他们展示如下:

Subject   Semester   Attendee
---------------------------------
ITB001    1          John
                     Bob
                     Mickey
          2          Jenny
                     James
MKB114    1          John
                     Erica

select x.name, y.name, z.name from x,y,z where y.x_id=x.id and z.y_id=y.id

但是如何更改sql查询呢?

这是数据表示的问题,而不是数据检索的问题。 因此,您不会在数据库端执行此操作,而是在客户端代码中执行此操作(无论碰巧是C#/ ASP.NET,php,java ...)。

尝试这个:

对于MySQL

SELECT IF(@Subject = @Subject:=X.id, '', X.name) AS `Subject`, 
       IF(@Semester = @Semester:=Y.id, '', Y.name) AS `Semester`, 
       Z.name 
FROM X
INNER JOIN Y ON Y.x_id=X.id 
INNER JOIN Z ON Z.y_id=Y.id
CROSS JOIN (SELECT @Subject:=0, @Semester:=0) A
ORDER BY X.id, Y.id, Z.id

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM