Mysql 获取一行中两行值的结果

Mysql 获取一行中两行值的结果,mysql,sql,string-aggregation,Mysql,Sql,String Aggregation,联接查询的结果- SELECT st_stock.name, st_stock.price, FORMAT(st_stock.quantity,0), st_stock.exp_date, admin.username FROM `st_stock` INNER JOIN `admin` ON FIND_IN_SET(admin.ID,st_stock.broker_id) AND st_stock.id='2' 样本数据 name

联接查询的结果-

SELECT st_stock.name, st_stock.price, 
       FORMAT(st_stock.quantity,0), 
       st_stock.exp_date, 
       admin.username 
FROM `st_stock` 
  INNER JOIN `admin` ON FIND_IN_SET(admin.ID,st_stock.broker_id) AND st_stock.id='2'
样本数据

name        price     asjdb       exp_date            username
5.HK (HSBC) 74.40 HKD 100,000,000 2018-07-27 17:00:00 broker2
5.HK (HSBC) 74.40 HKD 100,000,000 2018-07-27 17:00:00 broker3
预期产量

 5.HK (HSBC) 74.40 HKD 100,000,000 2018-07-27 17:00:00 broker2,broker3

您没有指定正在使用的SQL引擎。当涉及到更高级的聚合和窗口功能时,各个数据库引擎的实现各不相同

例如,在PostgreSQL中,可以使用聚合函数:

SELECT name, price, asjdb, exp_date, string_agg(username,',') AS username
FROM d
GROUP BY name, price, asjdb, exp_date;
对于其他数据库引擎,您将使用:

  • 甲骨文:
  • SQL Server:
  • MySQL:
  • 进一步阅读: 如果这是sql

     SELECT st_stock.name, st_stock.price, 
               FORMAT(st_stock.quantity,0), 
               st_stock.exp_date, 
               GROUP_CONCAT(admin.username)
        FROM `st_stock` 
          INNER JOIN `admin` ON FIND_IN_SET(admin.ID,st_stock.broker_id) AND st_stock.id='2' GROUP BY st_stock.name
    

    我的结果应该是--5.HK(汇丰银行)74.40 HKD 100000000 2018-07-27 17:00:00经纪人2,经纪人3你的问题。请勿将其他信息添加为(未格式化)注释您是否有用于预期输出的列名?相同列名可能重复感谢engine标记@它工作正常,对吧?确保您单击向上箭头投票赞成ans:D