我有两张桌子:
// table1 // table2
+----+------+---------+ +----+------+
| id | col1 | user_id | | id | col2 |
+----+------+---------+ +----+------+
| 1 | a | 100001 | | 1 | a |
| 2 | b | 100002 | | 2 | b |
| 3 | c | 100003 | | 3 | c |
+----+------+---------+ | 4 | a |
| 5 | a |
| 6 | c |
+----+------+
我还有一个名为$user_id
的变量。现在我要删除table2
col2='a'
所在的所有行,但我需要在table1.user_id = $user_id
中检查$user_id = '100001'
(在这种情况下为table1
),然后才能删除
如何使用以下概念编写正确的语法查询:
IF table1.user_id = $user_id where table1.col1 = 'a' then
delete from table2 where col2 = 'a'
我可以使用PHP和MySQL使用两个独立的查询来做到这一点。但是我想用一个查询做到这一点,是否可能?
答案 0 :(得分:2)
您可以使用JOIN执行删除操作
delete t2 from table2 t2
join table1 t1 on t2.col2 = t1.col1
where
t2.col2 = 'a'
and t1.user_id = '100001'