Mysql - 获得重复的结果

时间:2017-01-11 03:20:49

标签: mysql sql

我有3个表UPDATES,MODELS和UPDATES_MODELS。

UPDATES表包含以下列:

  • UPDATE_ID,
  • 公布
  • 缩略图

MODELS表包含以下列:

  • MODEL_ID
  • 如first_name
  • 姓氏。

UPDATES_MODELS是一个链接表,其中包含以下列:

  • UPDATE_ID
  • MODEL_ID。

某些更新包含多个模型。例如,如果更新有2个模型,我的查询将返回2个重复的缩略图,2个重复的标题, 2个重复日期,1个更新将有1个型号名称,另一个更新将具有其他型号名称。

这不是我想要的。

包含2个或更多型号的更新应返回1个缩略图,1个标题,1个日期,并列出带有更新的两个型号名称。

我尝试在SQL查询中使用DISTINCT,它什么也没做。无论有没有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

1 个答案:

答案 0 :(得分: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