1

I have two tables.

table 1
1
2
3
4

table 2
1
2
3

i want to select data from tables

table 1 have all data. but table 2 may have all data or not. so if table 1 data exits in table two data select table 2 data otherwise select table one data.

if table 1 data not exit table 2 select table 1 data.

how can do that?

chandana
  • 139
  • 8

2 Answers2

2

You need OUTER JOIN:

SELECT t1.ID, 
       COALESCE(t2.col1, t1.col1) AS col1,  -- prefer data from table_2 if exists
       COALESCE(t2.col2, t1.col2) AS col2,
       -- ...
FROM table_1 t1                  -- "table 1 have all data"
LEFT JOIN table_2 t2             -- "table 2 may have all data or not"
  ON t1.ID = t2.ID;              
Lukasz Szozda
  • 162,964
  • 23
  • 234
  • 275
0

Try FULL OUTER JOIN

SELECT t2.col1, t1.col1
FROM 
    table_1 t1 FULL OUTER JOIN table_2 t2
    ON t2.col1 = t1.col1

Or, if full joins are not supported by your database, try emulating them.

Community
  • 1
  • 1
openwonk
  • 14,023
  • 7
  • 43
  • 39