Mysql Query加入两个表

时间:2017-04-28 17:28:22

标签: mysql

我有两个简单的表格,一个关于狗品种,一个关于狗品牌。

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

我尝试过内连接,但我真的无法弄清楚这一点,看起来很容易。任何帮助都会非常受欢迎

3 个答案:

答案 0 :(得分:2)

如果您有大量记录,内部查询会降低性能(因为执行时间较长)。

优化的SQL查询:

search_index.json

答案 1 :(得分:0)

您可以使用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

答案 2 :(得分:0)

希望这会对你有所帮助

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