[英]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.