我有 3 个表 UPDATES、MODELS 和 UPDATES_MODELS。
UPDATES 表具有以下列:
- update_id,
- 已发布
- 缩略图
MODELS 表包含以下列:
- 型号_id
- 名字
- 姓氏。
UPDATES_MODELS 是一个链接表,具有以下列:
- update_id
- 型号 ID。
某些更新有超过 1 个模型。例如,如果更新有 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
最佳答案
首先我怀疑你的表模型。如果您遇到“更新有多个模型,但不同模型可以拥有多个更新”的情况,那么它是一对多关系,您可以将 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
关于Mysql - 获取重复结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41582146/