首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql查询连接两个表

问Mysql查询连接两个表
EN

Stack Overflow用户
提问于 2017-04-29 01:28:22
回答 3查看 48关注 0票数 0

我有两个简单的表,一个是关于狗的品种,另一个是狗的名字。

代码语言:javascript
复制
Breeds:

DogId  DogBreed                         

   1    boxer                            
   2     Lab                              
   3    Sheppard

Names:

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

我想要的结果是

代码语言:javascript
复制
boxer - duke, max
Lab- jack, socks
Sheppard- Lassie

我已经尝试过内部连接,但是我真的不能理解它,它看起来很简单。任何帮助都将非常受欢迎

EN

回答 3

Stack Overflow用户

发布于 2017-04-29 02:27:26

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

优化的SQL查询:

代码语言:javascript
复制
SELECT b.DogBreed,GROUP_CONCAT(n.DogName) FROM Breeds b 
LEFT JOIN `Names` n ON n.DogId=b.DogId
GROUP BY n.DogId
票数 2
EN

Stack Overflow用户

发布于 2017-04-29 01:37:56

您可以使用GROUP_CONCAT

试一下,

代码语言:javascript
复制
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
票数 0
EN

Stack Overflow用户

发布于 2017-04-29 02:18:33

希望这能对你有所帮助

代码语言:javascript
复制
 SELECT b.dogbreed , (SELECT GROUP_CONCAT(DogName) 
FROM NAMES WHERE DogId = b.DogId ) AS DogNames FROM Breeds b
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43685759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档