2014-06-23 36 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部門更新了「年份在哪裏」和「姓名」是否同意以及「年齡在哪裏」和「姓名」是否同意的概率列。

我希望幫助。