Thanks that code outputs exactly the table I've shown in step 2. The problem now though is that I don't know how I'm supposed to LEFT JOIN table_3 to the results table achieved by this query since it has union and all and I'm not that familiar with this syntax. The output should be somewhat like this [code] table_1 table_2 table_3 1 1 NULL 2 2 2 3 NULL 3 5 5 5 NULL 6 6 7 NULL 7 NULL 8 8 9 NULL 9 [/code] what I want basically is (those rows present in table1 union table2) but not in (table3) so once I get the above result table all I have to do is add a WHERE table_3.id IS NULL in this case that row is 1 This row is to be deleted from table_1 and table_2 in one query. another example table1: 3, 6, 9, 10 table2: 1, 3, 5, 7 table3: 8, 10 from table1 3,6,9 should be deleted from table2 1,3,5,7 should be deleted I'm referring to cross table delete http://www.electrictoolbox.com/article/mysql/cross-table-delete/