For a virtual layer, use this query:
select p1.id1, p2.id2, st_difference(p1.geometry, st_intersection(p1.geometry, p2.geometry)) as geom from polygon1 as p1, polygon2 as p2 For a virtual layer, use this query:
select p1.id1, p2.id2, st_difference(p1.geometry, st_intersection(p1.geometry, p2.geometry)) as geom from polygon1 as p1, polygon2 as p2