Как убрать дубли при написании запроса в sql oracle при объединении нескольких таблиц?

Ссылка скопирована
1 ответ

Имеются следующие табицы (примерно):
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 ...

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Максим Павлов Ответ

Для удаления дубликатов при объединении нескольких таблиц в 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;

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;

SELECT DISTINCT column1 FROM table1;

Таким образом, использование ключевого слова DISTINCT позволит избавиться от дубликатов при объединении нескольких таблиц в SQL Oracle.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно