【发布时间】:2012-06-07 18:42:13
【问题描述】:
我有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;
方法二:
在这 3 个表上创建一个带有 INNER JOIN 的 VIEW,并在应用程序需要时从该视图中查询 MIN(price)。
但是,视图只会在运行时执行查询。
请告诉我方法 1 中的查询是否可以,或者是否可以进一步优化并建议 VIEW 方法。
【问题讨论】:
标签: mysql join query-optimization min