我有两张桌子:
表1每个用户有1行:
ID startDate EndDate
1 09-08-2015 09-08-2015
2 09-08-2015 09-08-2015
第二个表包含每个用户的多条记录:
ID UserID data_key data_val
1 1 "email" "anything@test.com"
2 1 "name" "John Brown"
3 2 "email" "anything2@gmail.com"
4 2 "name" "Tom Brady"
我没有使用innodb所以我不能在删除时使用cascade。我需要做的是删除两个表中具有匹配ID的所有记录,其中table2.data_key = "email"
和该记录的{_}} {_ 1}}。因此,在这种情况下,table1 row1将与UserID 1中的表2中的所有行一起删除。到目前为止,我的所有尝试都失败了。我怎么能做到这一点,谢谢!
我的最新尝试(我理解为什么它不起作用,但如何修复我迷失了):
LIKE "%@test.com%"
答案 0 :(得分:1)
您无法同时从两个表中删除行。您必须先从一个表中删除行,然后从另一个表中删除。
但是,当你说"我没有使用innodb时,我不确定你是什么意思所以我不能在删除时使用cascade。" ON DELETE CASCADE
是标准SQL的一个特性,而不是innodb的一个特殊功能,所以除非你使用RDBMS的一些完全蹩脚的借口,否则你应该可以ON DELETE CASCADE
就好了。