【问题标题】:Transfer a multi column table into a simple form with SQL使用 SQL 将多列表转换为简单表格
【发布时间】:2022-01-17 21:56:13
【问题描述】:

用下面的形式想象一个给定的表格。例如,从一个系统中,某人最多可以租三本书(作为库存编号)

table 'rentbooks':

name book1 book2 book3
Adam 100
Bob 200 250 400
Claire 300 350

我想把它转换成这样更有用的形式(1 本书,1 行),ID 无关紧要:

name rentbookid
Adam 100
Bob 200
Bob 250
Bob 400
Claire 300
Claire 350

如何构造查询来实现这一点?

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    你可以使用UNION ALL:

    select name, book1 from rentbooks where book1 is not null
    union all
    select name, book2 from rentbooks where book2 is not null
    union all
    select name, book3 from rentbooks where book3 is not null
    

    结果:

     name    book1 
     ------- ----- 
     Adam    100   
     Bob     200   
     Claire  300   
     Bob     250   
     Claire  350   
     Bob     400   
    

    请参阅DB Fiddle 的运行示例。

    【讨论】:

      猜你喜欢
      • 2014-05-14
      • 2022-07-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-07
      • 1970-01-01
      • 2010-12-01
      • 1970-01-01
      相关资源
      最近更新 更多