Как убрать дубли при написании запроса в sql oracle при объединении нескольких таблиц?
Имеются следующие табицы (примерно):
name
id_1 id_2 name user
123 1234 1 ivanov
145 1456 2 ivanov
146 1466 3 ivanov
147 1476 4 ivanov
way
id_1 way dt
123 11 01.01.2023
123 11 01.02.2023
123 11 01.03.2023
145 11 01.01.2023
145 11 01.02.2023
145 11 01.03.2023
146 11 01.01.2023
146 11 01.02.2023
146 11 01.03.2023
…
location
id_2 location
1234 Москва1
1234 Москва2
1456 Питер1
1456 Питер2
1466 Екб1
1466 Екб2
Мне нужно вывести из этих таблиц значения name, way, location
select a.name, b.way, c.location from name a, way b, location c where a.id_1=b.id_1 and a.id_2=c.id_2 |
select a.name, b.way, c.location from name a, way b, location c where a.id_1=b.id_1 and a.id_2=c.id_2
Вывод следующий:
name way location
1 11 Москва1
1 11 Москва1
1 11 Москва1
2 11 Питер1
2 11 Питер1
2 11 Питер2
….
Подскажите, пожалуйста, как преобразовать код таким образом, чтобы значение name было одно в списке? Примерно следующее:
name way location
1 11 Москва1
2 11 Питер1
Дополнительно:
select distinct a.name, b.way, c.location ...
Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.
Пока нет других ответов. Будьте первым, кто поможет автору.
Ответить на вопрос
Для удаления дубликатов при объединении нескольких таблиц в SQL Oracle, можно воспользоваться ключевым словом DISTINCT. Применение DISTINCT позволяет выбрать уникальные строки из результирующего набора данных.
Пример запроса, который объединяет три таблицы и убирает дубликаты:
SELECT DISTINCT t1.column1, t2.column2, t3.column3 FROM table1 t1 INNER JOIN table2 t2 ON t1.id = t2.id INNER JOIN table3 t3 ON t2.id = t3.id;
В данном примере мы выбираем уникальные комбинации значений из столбцов column1, column2 и column3 из таблиц t1, t2 и t3 соответственно. DISTINCT применяется к результату запроса, чтобы убрать повторяющиеся строки.
Если необходимо выбрать уникальные строки только из определенной таблицы, то можно применить DISTINCT к соответствующему столбцу:
SELECT DISTINCT column1 FROM table1;
Таким образом, использование ключевого слова DISTINCT позволит избавиться от дубликатов при объединении нескольких таблиц в SQL Oracle.