1
У меня есть две таблицы TB1 и TB2 с MANT-ко-многим:
Postgresql: LEFT JOIN не работает
tb1:
id | code
-------------
1 | 6%
2 | 12%
tb2:
id | code
-------------
1 | code_001
2 | code_002
tb2_has_tb1:
id_tb2 | id_tb1 | money
---------------------------
1 | 1 | 250.0
1 | 2 | 300.0
2 | 1 | 100.0
В результате я хочу get is:
code_tb2 |code_tb1 | money
------------------------------
code_001 |6% | 250.0
code_001 |12% | 300.0
code_002 |6% | 100.0
code_002 |12% | 0.0 //----I want to display this row with zero if there is no join
Так что я сделал это запрос на выборку с левой присоединиться, как это:
SELECT tb2.code as code_tb2, tb1.code as code_tb1, money
FROM tb1 LEFT JOIN tb2_has_tb1 ON (tb1.id = id_tb1)
LEFT JOIN tb2 ON (tb2.id = id_tb2)
, но я получаю этот результат:
code_tb2 |code_tb1 | money
------------------------------
code_001 |6% | 250.0
code_001 |12% | 300.0
code_002 |6% | 100.0
Что я упускаю?
Что делает COALESCE? – SlimenTN
'COALESCE (t.money, 0.0)' будет использовать значение 't.money', если оно _not_ null, и оно вернет' 0.0', когда оно равно null. Вот как вы можете обнаружить, что соединение не произошло. –