【问题标题】:Combining two (multiple) tables using their table name as new field使用它们的表名作为新字段组合两个(多个)表
【发布时间】:2015-03-23 16:26:24
【问题描述】:

我有两张不同的桌子:carbike。我想加入这两个表并将它们的表名用作字段名。

car
| id | brand       | 
--------------------
|  1 | mercedes    |     
|  2 | bmw         |    
|  3 | audi        |

bike
| id | brand       | 
--------------------
|  1 | mercedes    |     
|  2 | bmw         |    
|  3 | audi        |

我想要的选择结果:

| id | vId | brand     | type |
-------------------------------
|  1 |  1  | mercedes  | bike | 
|  2 |  2  | bmw       | bike |
|  3 |  3  | harley    | bike |
|  4 |  1  | mercedes  | car  |  
|  5 |  2  | bmw       | car  | 
|  6 |  3  | audi      | car  |

感谢您的帮助。

【问题讨论】:

    标签: mysql


    【解决方案1】:

    您可以使用 UNION ALL 运算符。 UNION 运算符用于组合两个或多个查询的结果集

      set @pos=0;
    
     select @pos:=@pos+1 as id ,bikecar.vid, bikecar.brand,bikecar.type
     from
     (
      select id as Vid,brand,'CAR' as type from car 
        union all 
      select id as Vid,brand,'Bike' as type  from bike 
     ) bikecar
    

    【讨论】:

      【解决方案2】:

      你需要使用UNION ALL

      SELECT id, brand, 'car' AS type FROM car
      UNION ALL
      SELECT id, brand, 'bike' AS type FROM bike
      

      【讨论】:

      • 另一个问题@OTARKIKI,在您的示例中,我不能使用 WHERE 或 LIKE 选项。有没有我错过的部分?
      猜你喜欢
      • 2021-12-15
      • 1970-01-01
      • 1970-01-01
      • 2014-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-24
      相关资源
      最近更新 更多