簡體   English   中英

使用INNER JOIN顯示多個結果

[英]Display multiple results with INNER JOIN

我有以下三個MySQL表:

companies                    services                      auxiliary
id_company name_company      id_service  name_service      id_company id_service   

1          Google            1           Search            1          1   
2          Yahoo             2           Calendar          1          2  
                             3           Mail              1          3
                             4           Maps              1          4
                                                           2          1
                                                           2          3

我想知道是否可以只顯示一個查詢(我正在使用php):

Google: Search, Calendar, Mail, Maps.
Yahoo: Search, Mail.

現在,我正在做的是顯示公司,並為每個公司執行另一個MySQL查詢以顯示服務。 是否可以只執行一個查詢? 謝謝。

您的問題的答案是:“是”。

哦,您也想知道如何去做。 關鍵是將表連接在一起,然后在公司級別進行匯總。 我將假設您確實希望將輸出分為兩列(公司名稱,服務),而不是將它們串聯在一起的一個字符串。

SQL是:

select c.name_company, group_concat(s.name_service separator ', ') as services
from auxiliary a join
     companies c
     on a.id_company = c.id_company join
     services s
     on a.id_service =  s.id_service
group by c.id_company, c.name_company;

是的,你可以。 盡管我認為您描述的方法對我來說似乎更自然。 (對於公司有一個查詢/光標,對於服務有另一個查詢/光標)

您可以使用一個查詢來准備以下列表:
谷歌搜索
Google,日歷
谷歌郵件
谷歌地圖
雅虎,搜索
雅虎郵箱
...
(為簡單起見,我省略了ID)
然后,您遍歷該列表,每次公司更改時,您都會開始一個新的結果行。 我發現這比您描述的方法要復雜一些。

暫無
暫無

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

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