我有两个看起来像这样的表
姓名:
name gender babies year age prob
Mary F 16707 1900 0
Helen F 6343 1900 1
Anna F 6114 1900 114
Margaret F 5306 1900 6
Ruth F 4765 1900 114
Elizabeth F 4096 1900 114
LT
age 1900 1901 1902 1903
0 0.1460 0.1434 0.1408 0.1382
1 0.1740 0.1706 0.1672 0.1638
2 0.1875 0.1837 0.1799 0.1761
3 0.1960 0.1921 0.1882 0.1842
4 0.2031 0.1989 0.1948 0.1906
5 0.2081 0.2038 0.1995 0.1952
114 0.2117 0.2074 0.2030 0.1986
我正在尝试为'姓名'做一个更新声明。表中的问题'领域。因此,它将从名称表中查看年龄和年份,并将其与LT表格进行比较,查看列=年份和年龄=年龄的位置。
是否可以搜索值等于列名的位置?
我的基本想法是这样的:
update name t1, lt t2
set t1.prob = t2."?????"
where
t1.age = t2.age
因此,对于上面的表格,它看起来像这样
name gender babies year age prob
Mary F 16707 1900 0 0.1460
Helen F 6343 1900 1 0.1740
Anna F 6114 1900 114 0.2117
Margaret F 5306 1900 5 0.2081
Ruth F 4765 1900 114 0.2117
Elizabeth F 4096 1900 114 0.2117
答案 0 :(得分:2)
你的问题不清楚。我会做一些假设。正如Omer Iqabl正确指出你的表格不同意。
要使表格一致,必须将第二个表格更改为:
age | year | weight
-------------------
0 1900 0.1460
等...
这将允许您查询表并加入它们。
UPDATE name AS a
SET prob = (SELECT weight
FROM lt AS b
WHERE b.year = a.year AND b.age = a.age
);
以上查询我希望有所帮助。 IT更新了概述列,其中lt和name的年份一致,以及lt和name中的年龄一致。
我希望有所帮助。