powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Как убрать дубли из агреггированной таблицы
3 сообщений из 3, страница 1 из 1
Как убрать дубли из агреггированной таблицы
    #39966589
Radzhab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть 4 таблицы. Word и Adj связанны отношением многие ко многие через таблицу Combinations. Examples связано отношением многие-к-одному Word


Стоит задача получить значения для каждого слова (Word) в таком виде
Код: c#
1.
2.
people|young,other,live,new...|любой пример из examples
person|.....|любой пример из examples


У меня запрос выдает некорректные данные

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select
  w.name word,
  GROUP_CONCAT(adj.name,',') adjectives,
  e.name
from combinations c,
     "adjectives" adj,
     word w,
     examples e

where c.word_id = w.id
and   c.adj_id = adj.id 
and e.word_id = w.id
group by w.name
ORDER by w.id



...
Рейтинг: 0 / 0
Как убрать дубли из агреггированной таблицы
    #39966606
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В SQL нет такого понятия "любой" поэтому требование "любой пример из examples" все тебе и портит.

Проще всего, загони выборку из EXAMPLES под group_concat.

Можно добавь в EXAMPLES флаговое поле и проследить что в нем Yes будет стоять только в одной строке на каждое слово. И выбирать с учетом флага.

Можно разбить задачу на два запроса. Первый на три главные таблицы, второй на EXAMPLE и соединять на клиенте.

В общем, вариантов много. Но в любом случае, ты должен забыть слово "любой" по отношению к запросам.
...
Рейтинг: 0 / 0
Как убрать дубли из агреггированной таблицы
    #39967121
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White Owl
В SQL нет такого понятия "любой" поэтому требование "любой пример из examples" все тебе и портит....


Можно заменить на понятие "первый" / "последний" в отсортированном наборе

Обычно делается с помощью https://www.sqlitetutorial.net/sqlite-window-functions/#:~:text=An SQLite window function performs,function retains the row identities.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Как убрать дубли из агреггированной таблицы
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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