Skip to content
Advertisement

get newest duplicated records ids from 2 tables sql

i have two tables:

Table 1

id | column_1 | column_2 | parent_id | added_at
-------------------------------------------------
1  | 0        |0          | 1        | Date 1
2  | 0        |0          | 1        | Date 2
3  | 1        |0          | 1        | Date 3
4  | 1        |0          | 1        | Date 4

Table 2

id | column_1 | column_2 | parent_id | added_at
-------------------------------------------------
1  | 0        |0          | 1        | Date 5
2  | 0        |0          | 1        | Date 6
3  | 1        |0          | 1        | Date 7
4  | 1        |0          | 1        | Date 8

The result should be for this particular case:

[[2], [4], [1], [2], [3], [4]]

we should get the newest ids when column_1 and column_2 are duplicated in both tables.

i’ve been trying with something like this one:

 SELECT x.id
   FROM (
    SELECT t1.column_1, t1.column_2, t1.parent_id, t1.id
    FROM table_1 t1

    UNION

    SELECT t2.column_1, t2.column_2, t2.parent_id, t2.id
    FROM table_2 t2
   ) x
 GROUP BY x.position_x, x.position_y, x.parent_id

But i’m getting [[1], [3]]

Expected result with ids from both tables:

[[2], [4], [1], [2], [3], [4]]

2, 4 are ids from the first table and 1, 2, 3, 4 are ids from the second table

Advertisement

Answer

may be this is what you want :

SELECT MAX(id) as last_id
FROM table_1
GROUP BY column_1, column_2
UNION
SELECT id
FROM table_2
User contributions licensed under: CC BY-SA
8 People found this is helpful
Advertisement