mysql 基于两个引用列更新列自连接(一种 vlookup)

mysql update column self join based on two reference columns (kind of vlookup)

希望有人能帮助我。我有一个包含以下数据的 table X_Date

+----+-----------+------+------+-------+
| 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  |
+----+-----------+------+------+-------+

我希望查询更新 table 如:

+----+-----------+------+------+-----------+
| 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      |
+----+-----------+------+------+-----------+

因此 Ref1 与另一行的 Ref2 相同的行的 Date1 需要更新为 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 

非常感谢任何帮助!

谢谢!

请尝试:

UPDATE
  `X_Data` t1
INNER JOIN 
  `X_Data` t2
ON t1.Ref2 = t2.Ref1
SET
  t1.Date2 = t2.Date1