2014-06-23 37 views
-1

我有这个样子Mysql的更新列名

名称的两个表:

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 

我试图做的更新语句'prob'字段中的'Name'表。因此,它将从名称表中查找年龄和年份,并将其与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

你的问题不清楚。两张桌子都没有年龄,桌子的名字也不清楚。什么是t1和t2?什么是lt? –

+0

@OmerIqbal查看添加的表格。另外t1和t2是我如何为该语句命名表。因此,不要输入name.prob,您可以执行t1.prob – user2755209

+1

如果出现这种情况,Titlyard提供了解决方案,请参见下文。 –

回答

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部门更新了“年份在哪里”和“姓名”是否同意以及“年龄在哪里”和“姓名”是否同意的概率列。

我希望帮助。