MySQL:更新单元格

时间:2010-08-23 20:53:02

标签: mysql

我需要一些mySQL语句的帮助。

我有一个看起来像这样的mySQL表:

Name Year Score   Address       Zip
Joe  2010   A     NULL          NULL
Joe  2009   B     123 Main St.  03755
Mary 2010   B     NULL          NULL
Mary 2009   C     234 Elm St.   03866

我需要抓住2009年的地址和拉链,并将它们放入各自的2010年单元格中。不幸的是,我有很多名字。

名字不同 - 乔只指一个乔,玛丽只指一个玛丽。

我知道最好有一个包含地址的单独表格。但是,我已经简化了我的例子。该表设计不完美,但以上是我需要解决的问题。

有什么建议吗?

谢谢, Laxmidi

1 个答案:

答案 0 :(得分:1)

抛开这个表(你已经认识到)的非规范化特性,你可以使用自联接来完成这个:

UPDATE mytable a
INNER JOIN mytable b 
    ON a.Name = b.Name 
    AND a.Year = 2010 
    AND b.Year = 2009
SET a.Address = b.Address, 
    a.Zip = b.Zip;