这里有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查询?
答案 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