繁体   English   中英

从 SQL 查询中获取重复项?

[英]Getting duplicates from SQL query?

我正在使用这个 sql 查询,但我得到了重复。 如何确保每个 inst_id 只获取一篇文章? 我想是我的 main_posts.c_p_id 组让它发生了,但如果我没有它,我会收到一个错误,因为我是按它排序的。 基本上,我首先尝试对 main_posts.c_p_id 中匹配的帖子进行排序和放置。

SELECT main_posts.c_p_id, insts.inst_id, insts.inst_title
  FROM insts
  LEFT JOIN inst_posts
    ON inst_posts.instp_inst_id = insts.inst_id
  LEFT JOIN main_posts
    ON main_posts.c_id = insts.instp_c_id
  GROUP BY insts.inst_id, main_posts.c_p_id
  ORDER BY main_posts.c_p_id DESC, insts.inst_title ASC

如何确保每个 inst_id 只获取一篇文章?

因为,您没有提供任何示例数据,但您提到您正在获得重复的行。 然后,您可以使用DISTINCT来显示不同的行。

SELECT DISTINCT main_posts.c_p_id, insts.inst_id, insts.inst_title
  FROM insts
  LEFT JOIN inst_posts
    ON inst_posts.instp_inst_id = insts.inst_id
  LEFT JOIN main_posts
    ON main_posts.c_id = insts.instp_c_id
  GROUP BY insts.inst_id, main_posts.c_p_id
  ORDER BY main_posts.c_p_id DESC, insts.inst_title ASC

我想是我的 main_posts.c_p_id 小组促成了它,

大概。

但是如果我没有它,我会收到一个错误,因为我是按它排序的。

不,您收到错误,因为您在GROUP BY提到了main_posts.c_p_id列。 ORDER BY只会对记录进行排序,与您是否选择此列无关。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM