簡體   English   中英

如何使用 SQL 查詢將多列數據放入同一個單元格中?

[英]How to get multiple columns data into the same cell with a SQL query?

我需要得到一個 sql 結果,該結果將表中的多列數據放入單個單元格中以獲得結果。 查詢會如何?

假設我有這兩張表:

表格1:

Name     spec
--------------
James    front
--------------
Henry    front
--------------
Henry    back

表 2:

Name     dir
--------------
James    123
--------------
Henry    456

我想得到這個結果:

結果表:

Name     spec     dir
-----------------------
James    front    123
-----------------------
Henry    front    456
         back
-----------------------

您可以嘗試使用group_concat()函數

    select a.name, group_concat(spec SEPARATOR ' '),dir
    from table1 a inner join table2 b on a.name=b.name
    group by a.name,dir

該問題的解決方案是調用連接。 連接使用某些標識符將多個表合並為一個。 在您的問題中,標識符是名稱。 一個示例解決方案是:

select table1.name, table2.spec, table2.dir
    from table1 inner join table2 on table1.name = table2.name

示例: GROUP_CONCAT是正確的,但如果您想在新行中打印規范列值,請使用 ' \\n '

SELECT a.name, GROUP_CONCAT(spec SEPARATOR '\n'),dir
FROM table1 a INNER JOIN table2 b ON (a.name=b.name)
GROUP BY a.name,dir;

暫無
暫無

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

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