我花了很长时间才弄清楚如何命名,但这里有一个解释……
我有两张桌子
表#1:
--------------------------------------------------------------
| id | start | end | duration |
-------------------------------------------------------------
| 1 | 2013-10-01 09:00:00 | 2013-10-01 09:30:00 | 30 |
-------------------------------------------------------------
| 2 | 2013-10-02 10:00:00 | 2013-10-02 10:30:00 | 30 |
--------------------------------------------------------------
| int | datetime | datetime | int |
--------------------------------------------------------------表2:
---------------------------------------------------
| id | start | end |
---------------------------------------------------
| 3 | 2013-10-01 09:00:00 | 2013-10-01 17:00:00 |
---------------------------------------------------
| 4 | 2013-10-02 09:00:00 | 2013-10-02 17:00:00 |
---------------------------------------------------
| int | datetime | datetime |
---------------------------------------------------我要做的是抓取表#2中的所有记录,匹配任何在同一日期和同一日期时间内的表#1行,并通过删除表#1中的时间来修改结果集……
一个示例结果是...
---------------------------------------------------------
| table2id | start | end |
---------------------------------------------------------
| 3 | 2013-10-01 09:30:00 | 2013-10-01 17:00:00 |
---------------------------------------------------------
| 4 | 2013-10-02 09:00:00 | 2013-10-02 10:00:00 |
---------------------------------------------------------
| 4 | 2013-10-02 10:30:00 | 2013-10-02 17:00:00 |
---------------------------------------------------------如何才能做到这一点?
发布于 2013-10-01 20:24:26
虽然我不能确定这个逻辑是否正确,但像这样的东西可能接近你正在寻找的东西:
UPDATE tbl2
SET start = (SELECT end FROM tbl1 WHERE start = tbl2.start)这两个表是如何关联的还不是很清楚。然而,id 显然不是。在您的示例中,唯一匹配的两个值是start值。
https://stackoverflow.com/questions/19116047
复制相似问题