我想根据条件删除行。让我详细解释一下,
表1
-----------------
| t1id | t1detail |
|--------------- |
| 1 | iii |
| 2 | jjj |
| 3 | iik |
| 4 | jjk |
-----------------
表2
------------------------
| t2id | t1id | t1detail |
|----------------------- |
| 1 | 1 | iii |
| 2 | 1 | jja |
| 3 | 3 | iib |
| 4 | 1 | jjc |
| 5 | 2 | iid |
| 6 | 3 | jje |
| 7 | 4 | iif |
| 8 | 2 | jjg |
| 9 | 3 | iih |
| 10 | 4 | jj3 |
------------------------
现在我需要在table2中同时删除table1 id(t1id),应删除从tablet1分配的所有id。
例如,假设我需要删除t1id = 1的意思,它应该从table1和table2删除
表1中的
1 | iii
表2中的
1 | 1 | iii
2 | 1 | jja
4 | 1 | jjc
应该删除。请建议我在mysql中进行操作
我试过
$query = "DELETE FROM table1 INNER JOIN table2 ON table1.t1id = table2.t1id WHERE table1.t1id = {$id};
$result = mysql_query($query, $connection);
但未成功
答案 0 :(得分:1)
我会假设您没有设置外键(可能使用MyISAM存储?)。如果是这种情况,则需要在查询中指定要删除的两个表。
DELETE table1, table2
FROM table1
JOIN table2
ON table1.t1id = table2.t1id
WHERE table1.t1id = {$id}
如果你设置了外键,你可以使用级联删除,这也可以解决你的问题。