首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除左侧联接查询结果中的重复

如何删除左侧联接查询结果中的重复
EN

Stack Overflow用户
提问于 2021-02-14 02:14:30
回答 2查看 84关注 0票数 0

看看这些桌子:

表租用:

Table skill_hiring:

我想展示与招聘相关的技能。如您所见,表skill_hirings中有3条记录是hiring_id = 3。因此,当我使用左联接查询时,它将返回3个相同的记录。

因此,我希望删除复制记录,并且只返回id_hiring的唯一记录。

我读了一些StackOverflow QnA,他们建议使用GROUP BY子句,但我仍然不明白。

查询:

代码语言:javascript
复制
SELECT id_hiring, company_id, title, status, start_salary, end_salary, 
viewer, open, close, expired 
 FROM (
    SELECT h.id id_hiring, * FROM hirings h 
    LEFT JOIN skill_hirings sh ON sh.hiring_id = h.id 
    LEFT JOIN skills s ON s.id = sh.skill_id 
    WHERE title ILIKE '%'
) RESULT

查询和结果:

注释:查询中的通配符%将替换为变量

EN

回答 2

Stack Overflow用户

发布于 2021-02-15 14:48:21

在写这个答案的时候,我们仍然不知道哪些字段是从哪一张桌子来的。根据当前的解释,不清楚为什么以下内容不能满足您的需要(尽管它可能根本不运行,这取决于所需的字段是否真的来自skill_hiringsskills table,我还没有包括这些字段)。

代码语言:javascript
复制
SELECT
    h.id as id_hiring,
    h.company_id,
    h.title,
    h.status,
    h.start_salary,
    h.end_salary, 
    h.viewer,
    h.open,
    h.close,
    h.expired 
FROM
    hirings h 
WHERE
    h.title ILIKE '%'
票数 0
EN

Stack Overflow用户

发布于 2021-02-15 14:52:55

作为一个快速的n脏解决方案,需要执行两次相同的查询,并将它们与UNION放在一起,它删除重复的行。

可能不是最优化的解决方案,但应该有效。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66191825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档