使用SQL为每个名称添加一行

时间:2017-08-25 14:50:07

标签: mysql sql

我有这个sql输出,根据他们的位置为我提供了不同的行。如果他们住在那里我想要每人一行和三列Y.

Select name, Paris, London, NYC from location 

 Name      Paris      London        NYC
 John      y          
 John                 y    
 John                              y

我想要这个

Name       Paris        London      NYc
John        y            y           y

3 个答案:

答案 0 :(得分:1)

你可以使用max函数:

select name, max(paris), max(london), max(nyc) from location
    group by name

答案 1 :(得分:-1)

使用子选择,如:

Select name,
       (SELECT Paris FROM location WHERE name = a.name),
       (SELECT London FROM location WHERE name = a.name)
FROM location a

这样,您可以在选择中进行选择,并将子选择链接到重叠选择的名称。

其他一些用户告诉您使用聚合。 在大多数数据库系统中,聚合查询的效率低于子查询,因此应谨慎使用聚合。

答案 2 :(得分:-1)

s

旁注,数据库设计不是最佳的!使用名称,城市和位置以及正确连接的3个表格将更加高效。