选择不同的连接多个表

eblbsuwk  于 2021-06-20  发布在  Mysql
关注(0)|答案(1)|浏览(291)

我在mysql中有两个长表,其形式如下

Tab1
=========
col1 col2
A    X
B    Y

Tab2
=========
col3 col4
A    dog
A    cat
A    dog
B    tree
B    tree
B    bush

我想为tab1的每一行检索tab2的不同值,其中col1=col3,这样输出看起来像

Col1   Col4
    A    (dog,cat)
    B    (tree,bush)

我试着用 SELECT DISTINCT 以及 JOIN ON 但我只是得到

dog
cat
tree
bush

我想做的事可行吗?谢谢你的帮助

zte4gxcn

zte4gxcn1#

SELECT Tab1.col1, GROUP_CONCAT(DISTINCT Tab2.col4) 
FROM Tab1 
INNER JOIN Tab2 ON Tab1.col1 = Tab2.col3
GROUP BY Tab1.col1

请注意,“结果将被截断为group concat\U max\U len系统变量给定的最大长度,该系统变量的默认值为1024”(https://dev.mysql.com/doc/refman/8.0/en/group-by-functions.html#function_group-康卡特)
如果需要大量串联的值,则应将此变量设置为更高的值。

相关问题