簡體   English   中英

在一行中獲得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;

對於其他數據庫引擎,您將使用:

  1. 甲骨文: LISTAGG
  2. SQL Server: STRINGAGG
  3. MySQL: GROUP_CONCAT

擴展 閱讀: SQLSERVER中的ListAGG

如果是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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM