我是sql新手,所以如果这是一个简单的问题,我很抱歉。下面是最简单的版本(似乎与这个问题非常相似):
我有两张table,一张和二张。表1有两个名为“id”和“data”的字符串列,表2有一个“uid”列和一个“fatdata”列。表2中的ID都是唯一的,但不在表1中,并且假定表1中的ID在表2中显示为UID。
**Table1**
ID DATA OTHERSTUFF
id1 ...
id1 ...
id2 ...
id2 ...
id3 ...
**Table2**
UID FATDATA MORESTUFF
id1 'adsf<data1>asdgas' ...
id2 'hrhdfh<data2>sdh' ...
id3 'adhfdh<data3>adf' ...
我需要做的是使用表2中的fatdata填充表1的数据列。具体来说,对于表1中的每一行,我需要获取它的id,在表2中查找唯一的对应行,然后使用特定的过程修剪它的fatdata值,并将结果存储在表1中的行中。
最终结果应该是
**Table1**
ID DATA OTHERSTUFF
id1 'data1' ...
id1 'data1' ...
id2 'data2' ...
id2 'data2' ...
id3 'data3' ...
除了我自己的“trim(str)”函数而不是“avg(intcol)”,我能像吴宇森(john woo)一样解决一开始提到的问题吗?再说一次,我还是sql新手,所以我甚至无法理解他的代码在做什么。
4条答案
按热度按时间zzwlnbp81#
你可以做一个连接,比如
在您的集合中,而不是仅仅分配给b.fatdata,您可以执行修剪函数或任何您需要的操作,以获得您想要分配的实际值。
mwkjh3gx2#
你需要一个
UPDATE
. 你可以调用FUNCTION
使用以下语法:nbnkbykc3#
我被打败了。我建议你多读一些关于连接的知识,并把它们学得很好。在sql中,您将一直使用连接。
W3学校加入
zed5wv104#