多列列的SQL查询

时间:2013-12-26 06:02:53

标签: sql select join if-statement sql-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查询?

2 个答案:

答案 0 :(得分:3)

这是数据的表示而不是数据检索的问题。因此,您不要在数据库端那样做,而是在您的客户端代码中(无论它恰好是C#/ ASP.NET,php,java ......)。

答案 1 :(得分:0)

试试这个:

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