2017-01-11 2 views
0

У меня есть 3 таблицы ОБНОВЛЕНИЯ, МОДЕЛИ и UPDATES_MODELS.Mysql - Получение дублирующих результатов

В таблице ОБНОВЛЕНИЕ имеет следующие столбцы:

  • update_id,
  • разм
  • миниатюр

В таблице моделей имеет следующие столбцы:

  • model_id
  • first_name
  • last_name.

UPDATES_MODELS представляет собой таблицу, сшивание и имеет следующие столбцы:

  • update_id
  • model_id.

Некоторые обновления имеют более 1 модели. Например, если обновление имеет 2 модели, мой запрос вернет 2 дубликатов эскизов, 2 дубликата заголовка, 2 повторяющихся дат, а 1 обновление будет иметь 1 имя модели, а другое обновление будет иметь другое название модели.

Это не то, что я хочу.

Обновление с двумя или более моделями должно возвращать 1 миниатюру, 1 заголовок, 1 дату и список обеих имен моделей с обновлением.

Я попытался использовать DISTINCT в SQL-запросе, который ничего не сделал. Я получил тот же результат с ключевым словом DISTINCT или без него.

Вот мой код:

SELECT updates.update_id, title, posted, duration, updates.thumbnail, updates.alt_tag, updates.title_tag, updates.visible, models.model_id, first_name, last_name, updates_models.update_id, updates_models.model_id 
FROM updates 
INNER JOIN updates_models 
ON updates.update_id = updates_models.update_id 
INNER JOIN models 
ON models.model_id = updates_models.model_id 
+0

Приведите образец данных образца образца, который вы хотели. –

+0

Итак, вы ожидаете, что ваш SELECT будет производить 1 полную строку (миниатюру, название, дату и модель) и вторую строку, содержащую только модель? Извините, но этого не произойдет. Ручка извлекает только соответствующую информацию в вашем приложении или отчете переднего конца. –

+0

Спасибо, Кен за ваш вклад. Вы говорите, что мне нужно запустить 2 SQL-запроса? – codeman

ответ

0

Прежде всего, я сомневаюсь, что вы таблицы модели. Если у вас есть случай «Обновление имеет несколько моделей, но не одна и та же модель может принадлежать нескольким обновлениям», то это отношение «один к большому», и вы можете просто сохранить update_id в таблице «Модели».

Ваш вопрос не очень ясен и неполный. В вашем запросе есть столбцы, которые вы не объяснили в вопросе. Однако вы можете попробовать выполнить запрос по вашему делу, если я получу вас с ограниченными сведениями.

SELECT updates.update_id, posted, updates.thumbnail,array_agg(first_name), array_agg(last_name), updates_models.update_id, updates_models.model_id FROM "UPDATES" updates INNER JOIN "UPDATES_MODELS" updates_models ON updates.update_id = updates_models.update_id INNER JOIN "MODELS" models ON models.model_id = updates_models.model_id group by updates.update_id, posted, updates.thumbnail, updates_models.update_id, updates_models.model_id 
Смежные вопросы