簡體   English   中英

MySQL查詢聯接兩個表

[英]Mysql Query Join two tables

我有兩個簡單的表格,其中一張關於狗的品種,另一張關於狗的名字。

Breeds:

DogId  DogBreed                         

   1    boxer                            
   2     Lab                              
   3    Sheppard

Names:

DogId   DogName
   1      Max
   1      duke
   2      Jack
   2      Socks
   3      Lassie   

我正在尋找的結果是

boxer - duke, max
Lab- jack, socks
Sheppard- Lassie

我已經嘗試了內部聯接,但是我真的無法弄清楚,這似乎很容易。 任何幫助將非常歡迎

如果您有大量記錄,內部查詢會降低性能(由於執行時間更長)。

優化的SQL查詢:

SELECT b.DogBreed,GROUP_CONCAT(n.DogName) FROM Breeds b 
LEFT JOIN `Names` n ON n.DogId=b.DogId
GROUP BY n.DogId

您可以使用GROUP_CONCAT

嘗試,

Select 
    b.dogbreed,
    GROUP_CONCAT(
        DISTINCT n.dogname
        ORDER BY n.dogname ASC SEPARATOR ', '
    ) dognames
from breeds b
join names n on n.dogid = b.dogid
group by b.dogbreed

希望這個能對您有所幫助

 SELECT b.dogbreed , (SELECT GROUP_CONCAT(DogName) 
FROM NAMES WHERE DogId = b.DogId ) AS DogNames FROM Breeds b

暫無
暫無

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

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