Как избежать дублирования записей в левом соединении - PullRequest
0 голосов
/ 21 апреля 2020

У меня есть две таблицы t1 и t2. В t1 насчитывается 1641787 записей. В t2 33176007 записей. Я хочу взять два столбца из t2 и сохранить все из t1, используя левое соединение. Когда я использую левое соединение с t1 до t2, я получаю больше записей, чем t1. Я хотел бы получить такое же количество записей, как t1 после присоединения. Пожалуйста, дайте мне предложение. Между таблицами существует множество отношений. Вот мой код:

SELECT t1.*, t2.City
FROM t1 LEFT JOIN t2 ON t1.ID = t2.ID;

Ответы [ 2 ]

2 голосов
/ 21 апреля 2020

Вам нужно агрегировать t2 до присоединения:

SELECT t1.*, t2.City
FROM t1 LEFT JOIN
     (SELECT t2.ID, ANY_VALUE(t2.City) as City
      FROM t2
      GROUP BY t2.ID)
     ) t2
     ON t1.ID = t2.ID;
0 голосов
/ 21 апреля 2020

"выберите Destinct ..." добавить "порядок на"

Как это:

SELECT DESTINCT t1.*, t2.City
FROM t1 LEFT JOIN t2 ON t1.ID = t2.ID
ORDER BY t1.name ASC;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...