gpt4 book ai didi

mysql - 在 SQL 语句中重用表达式

转载 作者:行者123 更新时间:2023-11-30 23:39:52 25 4
gpt4 key购买 nike

我正在使用 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')

有什么办法可以简化它吗?谢谢

最佳答案

Create a view包含额外列的数据并查询此 View 。创建 View 后,查询变得非常简单:

SELECT *
FROM your_view
WHERE type = 42
AND price > 0

关于mysql - 在 SQL 语句中重用表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4324314/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com