希望有人可以帮助我。我有一个表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 |
+----+-----------+------+------+-------+
我希望查询更新表格,如:
+----+-----------+------+------+-----------+
| 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
任何帮助都非常赞赏!
谢谢!
答案 0 :(得分:2)
请尝试:
UPDATE
`X_Data` t1
INNER JOIN
`X_Data` t2
ON t1.Ref2 = t2.Ref1
SET
t1.Date2 = t2.Date1