取得aid
SELECT aid FROM `a` ORDER BY 'addtime' DESC LIMIT 1 delete from a where aid=$aid
delete from b where aid=$aid

解决方案 »

  1.   

    因为流程需要,我想用纯mysql实现。
      

  2.   

    InnoDB表,外键约束——级联删除
      

  3.   

    sql 语句中好像有一个并联,不知道mysql是否支持,你试一下
      

  4.   

    6.4.6 DELETE 句法DELETE [LOW_PRIORITY] [QUICK] FROM table_name
           [WHERE where_definition]
           [ORDER BY ...]
           [LIMIT rows]orDELETE [LOW_PRIORITY] [QUICK] table_name[.*] [, table_name[.*] ...]
           FROM table-references
           [WHERE where_definition]orDELETE [LOW_PRIORITY] [QUICK]
           FROM table_name[.*] [, table_name[.*] ...]
           USING table-references
           [WHERE where_definition]DELETE 从 table_name 中删除 where_definition 中给定条件的记录行,并返回删除的记录数目。 如果你发出一个没有 WHERE 子句的 DELETE,所有的记录行将被删除。如果你以 AUTOCOMMIT 模式执行它,那么它类似于 TRUNCATE。查看章节 6.4.7 TRUNCATE 句法。在 MySQL 3.23 中,没有一个 WHERE 子句的 DELETE 将返回零作为受影响的记录数目。 当你删除所有记录行时,如果你真的希望知道多少条记录被删除,你可以使用一个这种形式的 DELETE 语句: mysql> DELETE FROM table_name WHERE 1>0;注意,这将比一个没有 WHERE 子句的 DELETE FROM table_name 语句慢,因为它一次只删除一行。 如果你指定关键词 LOW_PRIORITY,DELETE 的执行将被延迟,直到没有其它的客户端正在读取表。 如果你指定关键词 QUICK,那么在删除过程中存储引擎将不会归并索引叶,这可能会加速某些类型的删除操作。 在 MyISAM 表中,删除了的记录被放在一个链接表中维护,以后的 INSERT 操作将重新使用删除后的记录位置。为了回收闲置的空间,并减小文件尺寸,使用 OPTIMIZE TABLE 语句或 myisamchk 实用程序重新组织表。OPTIMIZE TABLE 使用比较容易,但是 myisamchk 更快点。查看章节 4.5.1 OPTIMIZE TABLE 句法 和章节 4.4.6.10 表优化。 第一个多表删除格式从 MySQL 4.0.0 开始被支持。第二个多表删除格式从 MySQL 4.0.2 开始被支持。 仅仅在 FROM 或 USING 子句 之前 列出的表中的匹配记录行被删除。效果就是,你要以从多个表中同时删除记录行,并且同样可以有其它的表用于检索。 在表名后的 .* 仅仅是为了兼容 Access: DELETE t1,t2 FROM t1,t2,t3 WHERE t1.id=t2.id AND t2.id=t3.idorDELETE FROM t1,t2 USING t1,t2,t3 WHERE t1.id=t2.id AND t2.id=t3.id在上面的情况下,我们仅仅从 t1 和 t2 表中删除匹配的记录行。 如果一个 ORDER BY 子句被使用(从 MySQL 4.0.0 开始支持), 记录行将以指定的次序删除。这实际上只有连同 LIMIT 一起才有用。示例如下: DELETE FROM somelog
    WHERE user = 'jcole'
    ORDER BY timestamp
    LIMIT 1这将删除匹配 WHERE 子句的,并且最早被插入(通过 timestamp 来确定)的记录行。 DELETE 语句的LIMIT rows 选项是 MySQL 特有的,它告诉服务器在控制权被返回到客户端之前可被删除的最大记录行数目。这可以用来确保一个特定的 DELETE 命令不会占用太长的时间。你可以简单地重复使用 DELETE 命令,直到被影响的记录行数目小于 LIMIT 值。 从 MySQL 4.0 开始,在 DELETE 语句中可以指定多个表,用以从一个表中删除依赖于多表中的特殊情况的记录行。然而,在一个多表删除中,不能使用 ORDER BY 或 LIMIT。 
      

  5.   

    从 MySQL 4.0 开始,在 DELETE 语句中可以指定多个表,用以从一个表中删除依赖于多表中的特殊情况的记录行。然而,在一个多表删除中,不能使用 ORDER BY 或 LIMIT。
    多表删除不能用limit,那怎么半?