memo_info表memo_no和memo_item表memo_no和memo_price表memo_no如果所有memo no 600然后在单个查询中删除这3个表中的所有值。我怎么能这样做?
答案 0 :(得分:1)
首先,如果你想以正确的方式进行,你必须设置foreign key并在两个“table2”和“table3”上设置“级联删除”选项,同时使其成为索引键table1,就像你的情况“memo_no”是列一样,所以当你从表1中删除记录时,将自动删除另外两个设置了外键约束的记录。 第二种可能的方法是使用PDO事务,你可以这样做,
BEGIN TRANSACTION;
DELETE FROM table1 WHERE memo_no = 600;
DELETE FROM table2 WHERE memo_no = 600;
DELETE FROM table3 WHERE memo_no = 600;
COMMIT;
或者你也可以这样做, 注意 : 在PDO中记下以下查询准备并绑定memo_no的值,我已经给你下面的工作示例,
DELETE a.*, b.* ,c.*
FROM tbl1 a
LEFT JOIN tbl2 b
ON b.memo_no = a.memo_no
LEFT JOIN tbl3 c
ON c.memo_no =b.memo_no
WHERE a.memo_no = 600