Соедините таблицы с или без записей

У меня две таблицы как units а также price, Единицы таблицы полей unit1, unit2, Price поля таблицы id, rateper, price, Теперь я хочу соединить эти две таблицы, такие как Price Таблица rateper <=0 или же Price table is empty затем вернитесь unit1 еще rateper, я написал запрос, как показано ниже, но это не нарушая

 select case when rateper <=0  then unit1 else rateper from units,price

использую postgresql версия 9.0

Таблица единиц

+------+-----+
|Unit1 |Unit2|
--------------
| 2    | 10  |
| 1    | 20  |
+------+------

Таблица цен

+------+-------------+---------+
|id    + rate per    + price   |
--------------------------------
|1     |0            | 100     |
|2     |1            | 200     |
|3     |2            | 300     |
--------------------------------

Result :

2
1
3

Если таблица цен не имеет строк, то показывать результат будет

2
1

1 ответ

Решение

Вы должны указать столбцы, по которым вы хотите присоединиться к этим таблицам

select
    case
        when p.rateper <= 0 or p.rateper is null then u.unit1
        else p.rateper
    end
from units as u
    full outer join price as p on p.id = u.???

Я думаю, вам нужно какое-то полное внешнее соединение. Я до сих пор не совсем понимаю, что именно вы хотите, но попробуйте этот запрос:

select
    coalesce(u."Unit1", p."id")
from Units as u
    full outer join (select * from price where "rate per" > 0) as p on p."id" = u."Unit1";

sql fiddle demo

Другие вопросы по тегам