我的问题几乎与SQL DELETE with INNER JOIN相同;但我想删除不等于!
我的问题简介: 有2个表,bus_stops,bus_routes;
bus_routes {id, bus_route_id,..other columns..}
bus_stops {id, bus_route_id,..other columns..}
Run Code Online (Sandbox Code Playgroud)
有些路线被删除了,但公交车站还剩下,我也需要删除它们。意味着,我只需要删除没有关联巴士路线的bus_stops!
它的意思是这样的:
DELETE bs.* FROM bus_stops AS bs
INNER JOIN bus_routes AS br
ON bs.bus_route_id <> br.bus_route_id
Run Code Online (Sandbox Code Playgroud)
但上面的代码肯定是不行的。
小智 5
您应该使用LEFT JOIN,下面的查询将起作用:
DELETE bs.*
FROM bus_stops AS bs
LEFT JOIN bus_routes AS br
ON bs.bus_route_id = br.bus_route_id
WHERE br.bus_route_id IS NULL
Run Code Online (Sandbox Code Playgroud)