MySQL Left join 得到双重结果

标签 mysql sql

我的查询有问题。首先这是我的数据库结构

database mt
- mtnobuk
- mtbrg
- mtcolor
- mtloc

database mv
- mvnobuk
- mvrng
- mvmsn
- mtnobuk (FK)

这是我的数据-

MT
mtnobuk     mtbrg   mtcolor     mtloc
---------------------------------------------
MT-112      Shape    Blue       L1

MV
mvnobuk     mvrng   mvmsn       mtnobuk
-------------------------------------------------
MV-111      round   sharp       MT-112
MV-112      oval    blunt       MT-112

我只想像这样查询我的数据-

mtnobuk     mtbrg       mtcolor       mvrng         mvmsn
----------------------------------------------------------
MT-112      Shape        Blue         round         sharp
                                      oval          blunt
----------------------------------------------------------

到目前为止我已经尝试过了

SELECT  mtnobuk,mtbrg,mtcolor,mtloc,mvnobuk,mvrng,mvmsn,mtnobuk
FROM    mv
LEFT JOIN mt on mtnobuk = mvnobuk
WHERE mtnobuk = MT-112
GROUP BY mtnobuk,mtbrg

我试了很多次,结果都是双倍的,像这样

mtnobuk     mtbrg       mtcolor       mvrng         mvmsn
----------------------------------------------------------
MT-112      Shape        Blue         round         sharp
                                      oval          blunt
----------------------------------------------------------
MT-112      Shape        Blue         round         sharp
                                      oval          blunt
----------------------------------------------------------

我希望有人能帮我解决这个问题,谢谢你们,祝你们有愉快的一天。

最佳答案

我认为 GROUP CONCAT 可能是您能做的最好的。像这样尝试:

SELECT  mtnobuk, mtbrg, mtcolor, mvnobuk, GROUP_CONCAT(mvrng), GROUP_CONCAT(mvmsn)
FROM    mv
LEFT JOIN mt on mtnobuk = mvnobuk
WHERE mtnobuk = MT-112
GROUP BY mtnobuk, mtbrg, mtcolor, mvnobuk

关于MySQL Left join 得到双重结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47067762/

相关文章:

mysql - 大小写分隔的字符串操作 MySQL

MySQL 出现错误代码 1452,但值和表确实存在

MySQL 为多行生成 UUID()

sql - Oracle SQL 按级别连接

php - 如何使用带有htmlentities的富文本区域并控制数据库的长度

Php自动填充网格

mysql - PhpMyAdmin SQL 查询代码恢复为旧代码

php - 在一个查询中更新多行性能非常慢

mysql - 从注释字段中有选择地选择日期

mysql - mysql如何比较同一张表中不同列的不同行