[英]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.