gpt4 book ai didi

Mysql 从 3 个表中获取最低价格。提高效率

转载 作者:行者123 更新时间:2023-11-29 01:31:32 25 4
gpt4 key购买 nike

我有如下3个表,

1. Link_products_price
DESC: unique_id|product_id|sub_category_id.
2. local_price
DESC: unique_id|price.
3. online_price
DESC: unique_id|price.

我想为给定的 product_id|sub_category_id 选择最低价格。

我想到了以下,

方法一:

SELECT MIN(price) 
FROM local_price
WHERE unique_id IN (SELECT unique_id
FROM link_products_price
WHERE product_id=1
AND sub_category_id=1)

UNION

SELECT MIN(price)
FROM online_price
WHERE unique_id IN (SELECT unique_id
FROM link_products_price
WHERE product_id=1
AND sub_category_id=1)
LIMIT 1;

方法 2:

在这 3 个表上创建一个带有 INNER JOIN 的 View ,并在应用程序需要时从 View 中查询 MIN(价格)。

但是, View 只会在运行时执行查询。

请告诉我方法 1 中的查询是否可以,或者是否可以进一步优化,以及对 VIEW 方法的建议。

最佳答案

您的第一种方法始终选择最低本地价格:您需要添加一个 ORDER BY 子句以确保 LIMIT 选择两者中的最小值。但是,join 会更简单查询并使用 MySQL 的 LEAST()结合 MIN() 聚合函数:

SELECT LEAST(MIN(local_price.price), MIN(online_price.price))
FROM link_products_price
LEFT JOIN local_price USING (unique_id)
LEFT JOIN online_price USING (unique_id)
WHERE link_products_price.product_id = 1
AND link_products_price.sub_category_id = 1

关于Mysql 从 3 个表中获取最低价格。提高效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10868652/

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