Mysql group_concat和group by不在一起工作

Mysql group_concat和group by不在一起工作,mysql,group-by,group-concat,Mysql,Group By,Group Concat,我一直在寻找答案,但是我找不到,所以希望你能帮助我。 我正试图得到一份按“休假ID”和“组织ID”分组的工作列表。 但我只能让其中一个工作 有人能给点建议吗 谢谢 SELECT tblVacature.vacatureNaam, tblVacature.vacatureCode, DATE_FORMAT(tblVacature.vacatureDatumToegevoegd,'%d-%m'), MAX(tblVacature.vacatureSuper)

我一直在寻找答案,但是我找不到,所以希望你能帮助我。 我正试图得到一份按“休假ID”和“组织ID”分组的工作列表。 但我只能让其中一个工作

有人能给点建议吗

谢谢

SELECT 

    tblVacature.vacatureNaam, 
    tblVacature.vacatureCode, 
    DATE_FORMAT(tblVacature.vacatureDatumToegevoegd,'%d-%m'), 
    MAX(tblVacature.vacatureSuper), 

    tblOrganisatie.organisatieID, 
    tblOrganisatie.organisatieNaam, 
    tblOrganisatie.organisatieNaamConvert, 

    GROUP_CONCAT(tblSpecialisme.specialismeNaam 
        ORDER BY CASE 
        WHEN specialismeNaam = 'BLABLA' 
        THEN 1 WHEN specialismeNaam = 'BLABLA 2' 
        THEN 2 WHEN specialismeID = '0' 
        THEN 4 ELSE 3 END, specialismeNaam ASC) AS specialismeNamen, 

    GROUP_CONCAT(tblSpecialisme.specialismeNaamConvert 
        ORDER BY CASE 
        WHEN specialismeNaam = 'BLABLA' 
        THEN 1 WHEN specialismeNaam = 'BLABLA 2' 
        THEN 2 WHEN specialismeID = '0' 
        THEN 4 ELSE 3 END, specialismeNaam ASC) AS specialismeNamenConvert 

FROM tblVacature 
LEFT JOIN tblOrganisatie ON (tblVacature.vacatureOrganisatie = tblOrganisatie.organisatieID) 
LEFT JOIN tblSpecialisme ON FIND_IN_SET(tblSpecialisme.specialismeID, REPLACE(tblVacature.vacatureSpecialisme, ' ', ',')) 

WHERE 

    vacatureActive = '1' 
    AND vacatureDatumToegevoegd <= ? 

GROUP BY vacatureID, organisatieID 
ORDER BY MAX(vacatureSuper) DESC, tblVacature.vacatureDatumToegevoegd DESC
选择
tblVacature.vacuurenaam,
tblvacture.vacuureCode,
日期格式(tblVacature.VacationDatumToegeVoegd,“%d-%m”),
最大值(tblVacature.VACURESUPER),
tblOrganisatie.organatieid,
tblOrganisatie.organatienam,
tblOrganisatie.organatienaamconvert,
集团公司(TBLSSpecialism.Specialism)
逐案订购
当Menaam='BLABLA'
然后,当Menaam='BLABLA 2'
当meid='0'时为2
然后4个其他3个结束,SpecializeMenaam ASC)作为SpecializeMenamen,
集团公司(TBLSSpecialism.Specialism)
逐案订购
当Menaam='BLABLA'
然后,当Menaam='BLABLA 2'
当meid='0'时为2
然后4个其他3个结束,SpecialisteManam ASC)作为SpecialisteManam转换
来自tblVacature
左键加入TBLORGANISTIE ON(tblVacature.VATURE ORGANIATIE=TBLORGANISTIE.ORGANIATEID)
在集合中查找时左键连接tblSpecialisme(tblSpecialisme.specializeMeId,替换(TBLvacare.vacuureSpecializeMe,,,,,))
哪里
VacationActive='1'

还有VacationDatumToegeVoegd你能发布一些样本数据,制作一个sqlfiddle,并解释你希望用它得到什么结果吗?嗨,Barmar,我想有一个简短的列表,每个“tblOrganisatie.organisatieID”只出现一次。通过currect查询,我得到了一个长列表,其中每个“tblOrganisatie.organizatieId”包含多个工作(假期)。由于您按两个字段分组,因此每个字段的唯一组合都会得到一行。如果您只希望每个
OrganizatieID
有一行,那么请将
VacationId
GROUP BY
中取出。当我删除
OrganizatieID
时,
GROUP_CONCAT
显示所有作业的多个值,而不仅仅是作业本身的值。使用
GROUP_CONCAT(不同的TBLSSpecialism.Specialism…)
以抑制重复项。