【发布时间】:2011-05-18 11:33:29
【问题描述】:
我正在使用 MySQL,我想简化一个有点复杂的 SQL 语句。
查询是这样的:
SELECT `provider`.*,`products`.`placement`,`price`.`price`+
IFNULL((SELECT `price` FROM `price` WHERE `handle`=
(SELECT `group` FROM `group_provider` WHERE `provider_id`=`provider`.`id`)),'0') AS `price`
FROM `provider`
LEFT JOIN `products` ON `provider`.`id`=`products`.`web`
LEFT JOIN `price` ON `price`.`handle`=`provider`.`id`
WHERE `products`.`type`='$PRODUCT_TYPE'
AND `price`.`price`+
IFNULL((SELECT `price` FROM `price` WHERE `handle`=
(SELECT `group` FROM `group_provider` WHERE `provider_id`=`provider`.`id`)),'0')>0
此查询运行良好,但问题是我有一个重复的项目,我不知道如何简化它。我说的重复项是:
`price`.`price`+
IFNULL((SELECT `price` FROM `price` WHERE `handle`=
(SELECT `group` FROM `group_provider` WHERE `provider_id`=`provider`.`id`)),'0')
有什么简化的办法吗?谢谢
【问题讨论】:
-
查看它不是一个选项,因为数据库正在使用 MyISAM。据我所知 MyISAM 不支持视图 :(