Объединить несколько таблиц с общим именем столбца

Я пытаюсь объединить несколько таблиц с общим именем столбца, которые не должны иметь одинаковые значения по таблицам. Например,

    -tmp1-
    id dat
    1  234
    2  432
    3  412

    -tmp2-
    id nom
    1  jim
    2  
    3  ryan
    4  jack

    -tmp3-
    id pin
    1  gi23
    2  x4ed
    3  yit42
    8  hiu11

Если выше указаны входные данные, выходные данные должны быть

    id  dat  nom  pin
    1   234  jim  gi23
    2   432       x4ed
    3   412  ryan yit42
    4        jack
    8             hiu11

Заранее спасибо.

postgresql 8.2.15 на greenplum от R(сквозные запросы)

1 ответ

Решение

Использование FULL JOIN ... USING (id)синтаксис. пожалуйста, посмотрите пример: http://sqlfiddle.com/

так работают разные типы соединений (при условии, что tab1.row3 соответствует условиям соединения с tab2.row1, а также tab1.row3 отвечает tab2.row2):

| tab1 | | tab2 | |         JOIN          | |       LEFT JOIN       | |       RIGHT JOIN      | |       FULL JOIN       |
-------- -------- ------------------------- ------------------------- ------------------------- -------------------------
| row1 |                                    | tab1.row1 |                                       | tab1.row1 | 
| row2 |                                    | tab1.row2 |                                       | tab1.row2 |
| row3 | | row1 | | tab1.row3 | tab2.row1 | | tab1.row3 | tab2.row1 | | tab1.row3 | tab2.row1 | | tab1.row3 | tab2.row1 |
| row4 | | row2 | | tab1.row4 | tab2.row2 | | tab1.row4 | tab2.row2 | | tab1.row4 | tab2.row2 | | tab1.row4 | tab2.row2 |     
         | row3 |                                                                 | tab2.row3 |             | tab2.row3 |
         | row4 |                                                                 | tab2.row4 |             | tab2.row4 |
Другие вопросы по тегам