2017-07-31 174 views
0

我在我的數據庫中的兩個表:合併兩個SQL查詢到一行

表1

| id | name  | 
+--------+------------+ 
| 100 | john  | 
| 200 | Ali  | 

表2

| id | account | bank | 
+------+-----------+--------+ 
| 100 | AAAAAAA | bnk1 | 
| 100 | BBBBBBB | bnk2 | 
| 200 | XXXXXXX | bnk1 | 

這意味着 「約翰」 有兩個不同銀行的兩個不同賬戶

現在我想要一個查詢來顯示:

| id |   tab2   | 
+------+----------------------------+ 
| 100 | AAAAAAAbank1 - BBBBBBBbnk2 | 
| 200 |  XXXXXXXbnk1   | 

這可能嗎?

+1

是的,這是可能的。但是在數據庫上這樣做並不是一個好習慣,並且根據您擁有的數據庫平臺(您需要添加適當的標記),您使用的確切機制(sql代碼)會有很大差異。 –

+5

你正在使用哪個db。? – scaisEdge

+0

[連接行值T-SQL]的可能重複(https://stackoverflow.com/questions/1874966/concatenate-row-values-t-sql) –

回答

0

假設你正在使用的MS SQL Server

SELECT DISTINCT 
     Table1.id, 
     LEFT(STUFF((SELECT account + bank + '-' FROM Table2 WHERE id = Table1.id FOR XML PATH ('')), 1, 1, ''),LEN(STUFF((SELECT account + bank + '-' FROM Table2 WHERE id = Table1.id FOR XML PATH ('')), 1, 1, ''))-1) 
FROM Table1 
     JOIN Table2 
      ON Table1.id = Table2.id