postgresql lef join не работает - PullRequest
0 голосов
/ 14 ноября 2018

Я хотел бы добавить в таблицу A все столбцы таблицы B, выполняя объединение на основе общего столбца (тип числовой).Я пытаюсь сделать это, используя LEFT JOIN, но добавленные столбцы пустые.это невозможно, потому что таблица b хранит, среди прочего, те же значения идентификаторов.Где я не прав?

Select * from "2017_01" left join "Registry_2017" on '2017_01.ID' = 'Registry_2017.ID';

1 Ответ

0 голосов
/ 15 ноября 2018

Вы делаете неправильно .. Я не знаю, почему вы можете использовать право на Table, звонящий "2017_01" и другое с этим '2017_01.ID' ..

' = Одиночная кавычка идентифицирует какString

" = Двойная кавычка идентифицируется как Table or Column для экранирования Naming

Select 
  * 
From 
  "2017_01" 
  left join "Registry_2017" on '2017_01.ID' = 'Registry_2017.ID';

Поэтому, когда вы делаете это '2017_01.ID' = 'Registry_2017.ID' Условие всегда становится false, потому что те2 разных String не равны.Postgresql смотрите условие не как Table and Column, а String, потому что вы используете Single quote

Select 
  * 
from 
  "2017_01" 
   left join "Registry_2017" on "2017_01"."ID" = "Registry_2017"."ID";

Так что запрос должен быть таким ... Даже если вы уже получили ответ, и он получил работу, ядолжен сказать это ..

...