Соедините таблицы с или без записей
У меня две таблицы как 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";