以下是我的查询
SELECT
`adggtnz`.`reg04_rpt_animreg`.`hh_id` AS `hh_id`,
`adggtnz`.`reg04_rpt_animreg`.`animalid` AS `animalid`,
CONCAT(IFNULL(`adggtnz`.`reg04_rpt_animreg`.`tagsec`,
'Without Tag'),
' - ',
`adggtnz`.`reg04_lkpsex`.`sex_des`,
' - ',
IFNULL(`adggtnz`.`reg04_rpt_animreg`.`name`,
'Without name'),
' - ',
IFNULL(`adggtnz`.`reg04_rpt_animreg`.`color`,
'Without color')) AS `animaldesc`
FROM
(`adggtnz`.`reg04_rpt_animreg`
inner JOIN `adggtnz`.`reg04_lkpsex`)
WHERE
(((`adggtnz`.`reg04_rpt_animreg`.`sex` = `adggtnz`.`reg04_lkpsex`.`sex_cod`)
AND (`adggtnz`.`reg04_rpt_animreg`.`sex` = 2)
AND (NOT (`adggtnz`.`reg04_rpt_animreg`.`animalid` IN (SELECT DISTINCT
`adggtnz`.`lng04_rpt_animdisp`.`tagid`FROM `adggtnz`.`lng04_rpt_animdisp`))))
OR (((TO_DAYS(CURDATE()) - TO_DAYS(`adggtnz`.`reg04_rpt_animreg`.`birthdate`)) >= 558)
AND (`adggtnz`.`reg04_rpt_animreg`.`sex` = 4)))
and reg04_rpt_animreg.animalid like '%000404018293'
问题是查询给出了错误的输出,而不是给我我的动物作为成年雌性,它会将我的记录复制成四个
'0755255400', 'TZN000404018293', '8293 - Mature male - None - Bl'
'0755255400', 'TZN000404018293', '8293 - Mature female - None - Bl'
'0755255400', 'TZN000404018293', '8293 - Male calf - None - Bl'
'0755255400', 'TZN000404018293', '8293 - Female calf - None - Bl'
当我删除reg04_lkpsex的内部联接时,我得到了预期的输出。有人请帮助我修改查询,以便为我提供正确的输出结果
预期产量
'0755255400', 'TZN000404018293', '8293 - Mature female - None - Bl'
答案 0 :(得分:0)
添加
GROUP BY `adggtnz`.`reg04_rpt_animreg`.`animalid`
它应该很好
答案 1 :(得分:0)
SELECT
`adggtnz`.`reg04_rpt_animreg`.`hh_id` AS `hh_id`,
`adggtnz`.`reg04_rpt_animreg`.`animalid` AS `animalid`,
CONCAT(IFNULL(`adggtnz`.`reg04_rpt_animreg`.`tagsec`,
'Without Tag'),
' - ',
`adggtnz`.`reg04_lkpsex`.`sex_des`,
' - ',
IFNULL(`adggtnz`.`reg04_rpt_animreg`.`name`,
'Without name'),
' - ',
IFNULL(`adggtnz`.`reg04_rpt_animreg`.`color`,
'Without color')) AS `animaldesc`
FROM
(`adggtnz`.`reg04_rpt_animreg`
inner JOIN `adggtnz`.`reg04_lkpsex` on `adggtnz`.`reg04_rpt_animreg`.`sex` = `adggtnz`.`reg04_lkpsex`.`sex_cod`)
WHERE
(((`adggtnz`.`reg04_rpt_animreg`.`sex` = 2)
AND (NOT (`adggtnz`.`reg04_rpt_animreg`.`animalid` IN (SELECT DISTINCT
`adggtnz`.`lng04_rpt_animdisp`.`tagid`FROM `adggtnz`.`lng04_rpt_animdisp`))))
OR (((TO_DAYS(CURDATE()) - TO_DAYS(`adggtnz`.`reg04_rpt_animreg`.`birthdate`)) >= 558)
and (`adggtnz`.`reg04_rpt_animreg`.`sex` = 4)))
and `adggtnz`.`reg04_rpt_animreg`.`animalid`like '%000404018293'
以上查询为您提供
的输出'0755255400', 'TZN000404018293', '8293 - Female calf - None - Bl'