0
希望有人能帮助我。我有一个表X_Date
数据如下:mysql更新列自我连接基于两个参考列(种类的查找)
+----+-----------+------+------+-------+
| ID | Date1 | Ref1 | Ref2 | Date2 |
+----+-----------+------+------+-------+
| 1 | 22/2/2015 | ABC | null | null |
| 2 | 23/4/2015 | DEF | ABC | null |
| 3 | 24/4/2015 | GHI | null | null |
+----+-----------+------+------+-------+
我想通过查询更新如表:
+----+-----------+------+------+-----------+
| ID | Date1 | Ref1 | Ref2 | Date2 |
+----+-----------+------+------+-----------+
| 1 | 22/2/2015 | ABC | null | null |
| 2 | 23/4/2015 | DEF | ABC | 22/2/2015 |
| 3 | 24/4/2015 | GHI | null | null |
+----+-----------+------+------+-----------+
所以该行的Date1
其中Ref1
相同Ref2
从其他行需要更新为Date2列的值
我尝试了一些东西,但是我对mysql很陌生,几乎知道我确实在做这个错误:
UPDATE
`X_Data` AS t1
CROSS JOIN (
SELECT DISTINCT
Date1, Ref1, Ref2, Date2
FROM
`X_Data`
) AS t2
USING (Ref2)
SET
t1.Date2 = t2.Date1
任何帮助非常感谢!
谢谢!
是的!这样可行。非常感谢 – Peter
欢迎您! –