Как убрать дубли из агреггированной таблицы
Есть 4 таблицы. Word и Adj связанны отношением многие ко многие через таблицу Combinations. Examples связано отношением многие-к-одному Word

Стоит задача получить значения для каждого слова (Word) в таком виде
people|young,other,live,new...|любой пример из examples
person|.....|любой пример из examples
У меня запрос выдает некорреткные данные
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
Почему то дубли в колонке идут
https://yadi.sk/d/f7VANwWFroiwlQ бд sqlite
полная структура
CREATE TABLE adjectives (
id INTEGER NOT NULL
PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL
);
CREATE TABLE combinations (
id INTEGER NOT NULL
PRIMARY KEY AUTOINCREMENT
UNIQUE,
word_id INTEGER NOT NULL
REFERENCES word (Id),
adj_id INTEGER NOT NULL
REFERENCES adjectives (id)
);
CREATE TABLE examples (
id INTEGER NOT NULL
PRIMARY KEY AUTOINCREMENT,
name INTEGER,
word_id INTEGER REFERENCES word (Id)
);
CREATE TABLE word (
Id INTEGER NOT NULL
PRIMARY KEY AUTOINCREMENT,
name TEXT
);
Ответы (1 шт):
Автор решения: Alex R.
→ Ссылка
Если требуется любая запись из таблицы example, то можно использовать подзапрос с ограничением
select
w.name word,
GROUP_CONCAT(adj.name,',') adjectives,
(select e.name from examples e where e.word_id = w.id limit 1) name
from combinations c,
adjectives adj,
word w
where c.word_id = w.id
and c.adj_id = adj.id
group by w.name, w.id
ORDER by w.id
Думаю после этого и дубли уйдут.
