我有一个这样定义的 MySQL 视图:
SELECT
group_concat(`h`.`name` SEPARATOR ',') AS `hosts`,
`m`.`id` AS `slo_application_id`,
`s`.`application` AS `application`,
`s`.`slo_conformance` AS `slo_conformance`,
`s`.`hourly_conformance` AS `hourly_conformance`,
`s`.`date` AS `date`,
`m`.`slo_profile` AS `slo_profile`
FROM
(
(
`inv_host_slo` `s`
JOIN `slo_host_map` `m` ON (
(
`s`.`application` = `m`.`application_string`
)
)
)
LEFT JOIN `inv_host` `h` ON ((`m`.`host_id` = `h`.`id`))
)
GROUP BY
`s`.`application`
date
这很简单,但是当我在字段上使用 WHERE 查询视图时,我注意到了一些奇怪的行为。如果我在实际 SQL 查询中WHERE s.date = '2013-10-22'
的语句之前插入,GROUP BY
我会得到 2425 条记录,但如果我直接对视图执行此操作:
SELECT
*
FROM
v_host_slo_conformance
WHERE
date = '2013-10-22'
我只得到 307 条记录。
这在我的开发数据库上没有发生,唯一的区别是开发运行的是 5.5.15,而生产运行的是 5.5.14。这是基于版本差异的错误还是我忽略的错误?