Table_1
+------+-------------+
| id | value |
+------+-------------+
| 1 | 1.58 |
| 2 | 8.88 |
+------+-------------+
Table_2
+------+-------------+
| id | value |
+------+-------------+
| 1 | 2.15 |
| 2 | 7.50 |
+------+-------------+
Table_3
+------+-------------+
| id | value |
+------+-------------+
| 1 | 9.58 |
| 2 | 2.88 |
+------+-------------+
Result
+------+-------------------+
| id | value |
+------+-------------------+
| 1 | 1.58 (min value) |
| 2 | 2.88 (min value) |
+------+-------------------+
你好,我对mysql不是很熟悉。
我想从不同的表中计算关于ID的最小值,并将其存储在Result表中。我怎样才能做到这一点?
答案 0 :(得分:1)
一种选择是在子查询中使用union all
。然后在结果中使用min
聚合:
select id, min(value) val
from (
select id, value
from table_1
union all
select id, value
from table_2
union all
select id, value
from table_3
) t
group by id
或者您也可以join
将这些表放在一起并使用least
(假设所有表都有相同数量的id
字段,并且每个id
只有1行)。
select t1.id, least(t1.value, t2.value, t3.value) val
from t1
join t2 on t1.id = t2.id
join t3 on t1.id = t3.id
修改:关于您的评论,只需添加CREATE TABLE
。
create table newtable
select ...