【问题标题】:SQL query on multiple column order by多列顺序的 SQL 查询
【发布时间】:2013-12-26 06:02:53
【问题描述】:

这里在 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查询呢?

【问题讨论】:

  • 您使用的是什么 RDBMS(SQL Server、MySQL、Oracle,...)?
  • 我正在使用 MySQL 数据库

标签: sql select join if-statement sql-order-by


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    试试这个:

    对于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
    

    【讨论】:

    • @Mashfuk 不客气。如果您找到了您的解决方案,然后通过单击答案左侧的真标记接受满足您要求的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-07
    • 2022-01-25
    • 1970-01-01
    • 1970-01-01
    • 2021-11-24
    相关资源
    最近更新 更多