Создайте запрос PostgreSQL с возможностью отношения Null - PullRequest
0 голосов
/ 07 мая 2020

Предположим, у меня есть следующие таблицы, где id в каждой является первичными ключами, а субъекты во втором - внешним ключом первого.

 table: actors
 id |              name              
----+--------------------------------
  1 | Paul Rudd            
  2 | Danny Devito             
  3 | Mark Ruffalo 
  4 | David Allen Grier      

table: movies
 id |     name      | actors
----+---------------+----------------
  1 | So this is 40 |              1
  2 | Avengers      |              3
  3 | Twins         |              2

Мне нужно написать один запрос sql, который будет выберите все mov ie имена с их актерами и актерами без фильмов

Это то, что у меня:

SELECT IFNULL(m.name, 'none'), a.name
FROM actors a
JOIN movies m
ON m.id = a.id;

Я получаю:

ERROR:  function ifnull(character varying, unknown) does not exist
LINE 1: SELECT IFNULL(n.name, 'none'), l.name

HINT:  No function matches the given name and argument types. You might need 
to add explicit type casts.

Ответы [ 2 ]

0 голосов
/ 08 мая 2020

Postgresql:

 SELECT m.name, a.name
 FROM movies m 
 RIGHT OUTER JOIN actors a 
 ON m.actors = a.id;
0 голосов
/ 07 мая 2020

У меня работает нормально, проверьте здесь . Вы не используете правильную одинарную кавычку ' в своем запросе.

SELECT 
    coalesce(m.name, 'none'), a.name
FROM actors a
JOIN movies m
ON m.id = a.id;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...