简体   繁体   中英

Need help with a MySQL query

Please help me with this MySQL query. I've been on it for long enough. Perhaps it needs a fresh pair of eyes.

Two tables: locks and sessions

locks
--------------
id session_id
--------------
1  sajf4$Jf9422jd
2  2jf*4j2okg9092
3  J8j4j4ffss93o2
------------------

sessions
-------------------------
id              user_id
-------------------------
sajf4$Jf9422jd  14
J8j4j4ffss93o2  14
2jf*4j2okg9092  21
-------------------------

I want to delete all rows in locks where user_id of session = 14

DELETE FROM locks 
WHERE session_id IN (SELECT id FROM sessions WHERE user_id = 14)

DELETE FROM locks WHERE session_id =(SELECT id FROM sessions WHERE user_id = 14);

从session_id所在的锁中删除(select_id来自其中user_id = 14的会话)

Another way without a subquery:

delete from locks using locks join sessions on sessions.id=locks.session_id where sessions.user_id=14

DELETE locks, sessions FROM locks INNER JOIN sessions WHERE locks.session_id=sessions.id;

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM