我有2個數據庫。我想寫一個查詢,它將從兩個數據中提取數據並將它們綁定到相同的結果中。是否可以從多行中選擇數據用於單行輸出?
用戶數據庫:
id username group
1 steve group1
2 joe group1
3 tom group2
數據數據庫:
id userid fieldname fieldresult
1 2 phone 867-5309
2 2 address 123 elm st
3 1 address 666 park avenue
如果我只是想史蒂夫的地址,我可以這樣寫:
select user.username, data.fieldresult from user, data where user.id = data.userid and data.fieldname = 'address' and user.username = 'steve';
其結果將是:
username fieldresult
steve 666 park avenue
但是如果我想在單行中想要所有joe的fieldresults呢?這可以從查詢本身做到,還是我必須在代碼中處理?
基本上,我想看看:
username phone address
joe 867-5309 123 elm st
這是一廂情願的想法?我甚至不需要「電話」和「地址」作爲標題,只要我可以得到他們的價值在相同的結果。
注意:我正在使用現有的數據庫,這是如何存儲信息。
編輯: 此外,我需要在更大的基礎上做到這一點。不用用戶名查詢,我可以以同樣的方式爲整個組中的每個用戶獲取這些信息。
通過「兩個數據庫」你的意思是(在相同的數據庫和相同的所有者/架構下)「兩代表」? – mathguy
@woodchipper - 不完全是鏈接問題的副本。鏈接的問題不需要加入,這是一個問題。這個相關的問題被要求重新提供同樣的信息。當前的問題更有意義,第二個表是EAV,而在關聯問題中則不是這種情況。 – mathguy
@mathguy有道理,我刪除了我原來的評論。 – Woodchipper