0

我有 2 张桌子:users&rent

如何name从表中选择usersWHEREunixtime之前2012-09-04

从表中删除rentWHEREname来自上一个查询。

如下所示,但我不知道如何使用删除查询加入它:

SELECT * 
FROM  `pstone_cuboids` 
WHERE  `last_used` >= UNIX_TIMESTAMP(  '2012-09-04' ) 

如果我错了,请纠正我,上面是否选择了 2012 年 9 月 3 日(2 日、1 日、31 日等)之前的所有数据?

4

2 回答 2

2

这应该有效:

DELETE FROM rent WHERE name IN (
    SELECT name FROM `pstone_cuboids` 
    WHERE `last_used` >= UNIX_TIMESTAMP('2012-09-04')
)
于 2012-09-18T20:44:12.003 回答
1

您的示例具有不同的表名和列名,因此这只是一种解释:

DELETE r.*
FROM `rent` r JOIN `users` u ON r.name  = p.name
WHERE  r.unixtime < '2012-09-04'

有关多表删除,请参阅文档。

于 2012-09-18T21:25:41.057 回答