【发布时间】:2014-07-11 07:04:18
【问题描述】:
我有以下查询可以正常工作(见下文)。
但是当我添加一个条件时,例如AND (specialtyName = '...') 主要结果很好,但是 GROUP_CONCAT 只显示匹配条件的结果。
谁能帮我解决这个问题?
提前致谢。
弗雷德。
SELECT
tblJobs.jobID,
tblJobs.jobName,
DATE_FORMAT(tblJobs.jobDate,'%d-%m-%Y'),
tblCompanies.companyID,
tblCompanies.companyName,
tblCompanies.companyNameConvert,
GROUP_CONCAT(DISTINCT tblSpecialties.specialtyName
ORDER BY FIELD (
specialtyName,
'specialtyName1',
'specialtyName2',
'specialtyName3'),
specialtyName ASC)
AS specialtyNames,
GROUP_CONCAT(DISTINCT tblSpecialties.specialtyNameConvert
ORDER BY FIELD (
specialtyName,
'specialtyName1',
'specialtyName2',
'specialtyName3'),
specialtyName ASC)
AS specialtyNamesConvert,
GROUP_CONCAT(DISTINCT tblRegions.regionName),
GROUP_CONCAT(DISTINCT tblRegions.regionNameConvert)
FROM tblJobs
LEFT JOIN tblCompanies ON
(tblJobs.jobCompany = tblCompanies.companyID)
LEFT JOIN tblSpecialties ON
FIND_IN_SET(tblSpecialties.specialtyID, REPLACE(tblJobs.jobSpecialty,' ',','))
LEFT JOIN tblRegions ON
FIND_IN_SET(tblRegions.regionID, REPLACE(tblJobs.jobRegion,' ',','))
WHERE
AND jobActive = '1'
AND jobDate >= '2013-01-01'
AND companyActive = '1'
GROUP BY jobID
ORDER BY jobDate DESC, jobID DESC, jobCompany DESC
【问题讨论】:
-
我很困惑。如果您添加一个
where子句限制SpecialtyName,您为什么担心结果中只包含这些专业? -
嗨@Gordon。作业结果受到“where”子句的正确限制,但“specialtyNames”仅显示该特定作业的一个“SpecialtyName”,而不显示其他“specialtyNames”。
标签: php mysql group-concat find-in-set