在一行中获取 2 行值的结果
get result of 2 rows value in one row
连接查询的结果-
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 中,您将使用 string_agg 聚合函数:
SELECT name, price, asjdb, exp_date, string_agg(username,',') AS username
FROM d
GROUP BY name, price, asjdb, exp_date;
对于您将使用的其他数据库引擎:
- 甲骨文:LISTAGG
- SQL 服务器:STRINGAGG
- MySQL: GROUP_CONCAT
进一步阅读:
ListAGG in SQLSERVER
如果这是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
连接查询的结果-
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 中,您将使用 string_agg 聚合函数:
SELECT name, price, asjdb, exp_date, string_agg(username,',') AS username
FROM d
GROUP BY name, price, asjdb, exp_date;
对于您将使用的其他数据库引擎:
- 甲骨文:LISTAGG
- SQL 服务器:STRINGAGG
- MySQL: GROUP_CONCAT
进一步阅读: ListAGG in SQLSERVER
如果这是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