Mysql group_concat和group by不在一起工作
我一直在寻找答案,但是我找不到,所以希望你能帮助我。 我正试图得到一份按“休假ID”和“组织ID”分组的工作列表。 但我只能让其中一个工作 有人能给点建议吗 谢谢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)
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…)
以抑制重复项。