如何在MYSQL中进行复杂的计算?

问题描述 投票:0回答:1

如何找到数据表中的所有行,这些行与另一个表中的行数据之间的某些计算结果相关?

(例如,对于电子商店,我想查找产品表中的所有产品(行),这些产品的价格(另一个表中的列)低于相对运费加上常规运费的总和该产品的价格(数据在另一个表中)。

我怎样才能实现这个目标?

为了更清楚,让我们尝试使用 woocommerce MYSQL 查询:

SELECT * 
FROM wp_posts p 
join wp_postmeta m  
WHERE meta_key="_price" and m.meta_value < (
    SELECT meta_value 
    from wp_postmeta 
    where post_id=p.ID and meta_key='shipping_cost'
    ) + (
    Select meta_value 
    from wp_postmeta 
    where post_id=p.ID and meta_key='_regular_price'
    );

在MYSQL里面可以做这样的计算吗?

mysql calculated-columns
1个回答
0
投票

您应该多次使用

wp_postmeta
进行连接,而不是使用相关子查询。

SELECT *
FROM wp_posts AS p
JOIN wp_postmeta AS m1 ON p.id = m1.post_id
JOIN wp_postmeta AS m2 ON p.id = m2.post_id
JOIN wp_postmeta AS m3 ON p.id = m3.post_id
WHERE m1.meta_key = '_price' AND m2.meta_key = 'shipping_cost' AND m3.meta_key = '_regular_price'
AND m1.meta_value < m2.meta_value + m3.meta_value
© www.soinside.com 2019 - 2024. All rights reserved.