powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как вывести уникальные записи из трёх таблиц ?
4 сообщений из 4, страница 1 из 1
Как вывести уникальные записи из трёх таблиц ?
    #40118264
Sice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток. Подскажите пожалуйста. Мне нужно вывести уникальные записи из трёх таблиц по столбцу ticker. Все три таблицы имеют структуру:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
CREATE TABLE `table1` (
 `id` int(8) NOT NULL AUTO_INCREMENT,
 `ticker` varchar(16) NOT NULL,
 `lastprice` double NOT NULL,
 `pricechange` double NOT NULL,
 `pricechangepercent` float NOT NULL,
 `highprice` double NOT NULL,
 `lowprice` double NOT NULL,
 `volume` double NOT NULL,
 `quoteVolume` float NOT NULL,
 `spread` float NOT NULL,
 `time` varchar(22) NOT NULL,
 PRIMARY KEY (`id`),
 UNIQUE KEY `ticker` (`ticker`)
) ENGINE=InnoDB AUTO_INCREMENT=300 DEFAULT CHARSET=utf8



Делаю вот так:
Код: sql
1.
SELECT * FROM table1 UNION SELECT * FROM table2 UNION SELECT * FROM table3


Но в итоге, выводятся все значения и те, которые повторяются в столбце ticker. Мне нужны только уникальные записи по столбцу ticker.
...
Рейтинг: 0 / 0
Как вывести уникальные записи из трёх таблиц ?
    #40118272
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть в одной таблицы запись с неким ticker.
Есть в другой таблице другая запись с тем же ticker... но некоторые другие поля отличаются.

Вопрос: как из них выбрать одну запись? по каким критериям?
Критерий должен быть совершенно однозначный и чёткий.
...
Рейтинг: 0 / 0
Как вывести уникальные записи из трёх таблиц ?
    #40118276
Sice
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina
Есть в одной таблицы запись с неким ticker.
Есть в другой таблице другая запись с тем же ticker... но некоторые другие поля отличаются.

Вопрос: как из них выбрать одну запись? по каким критериям?
Критерий должен быть совершенно однозначный и чёткий.

Ну то есть взять первый уникальный ticker в первой таблице, во второй если значение ticker уже было в первой таблице - эту запись уже не брать, если в первой таблице и второй значения ticker не было, то взять его

Нужно вытащить все записи из трёх таблиц и исключить повторы значений в столбцах ticker.
...
Рейтинг: 0 / 0
Как вывести уникальные записи из трёх таблиц ?
    #40118288
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну например так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
WITH 
cte1 AS ( SELECT * 
          FROM table1 ),
cte2 AS ( SELECT *
          FROM table2
          WHERE NOT EXISTS ( SELECT NULL
                             FROM cte1
                             WHERE cte1.ticker = table2.ticker ) ),
cte3 AS ( SELECT *
          FROM table2
          WHERE NOT EXISTS ( SELECT NULL
                             FROM cte1
                             WHERE cte1.ticker = table3.ticker )
            AND NOT EXISTS ( SELECT NULL
                             FROM cte2
                             WHERE cte2.ticker = table3.ticker ) )
SELECT *
FROM cte1
UNION ALL
SELECT *
FROM cte2
UNION ALL
SELECT *
FROM cte3;
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Как вывести уникальные записи из трёх таблиц ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]