我的查询有问题。首先这是我的数据库结构
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/