首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在内连接上选择特定列的distinct

在内连接上选择特定列的distinct
EN

Stack Overflow用户
提问于 2018-05-22 23:14:22
回答 1查看 67关注 0票数 0

我有一个表,表示提供、配置文件和技能之间的三元关系。

任何给定的提议都可以有多个简档和多个关联的技能。

如下所示:

ternary_relationship表

代码语言:javascript
复制
id_Offer    -   id_Profile  -   id_Skill
1           -   1           -   1
1           -   1           -   2
1           -   1           -   3
1           -   2           -   1
2           -   1           -   1
2           -   1           -   2
2           -   1           -   3
2           -   2           -   1

优惠表格

代码语言:javascript
复制
Offer   -   business_name
1       -   business-1
1       -   business-1
1       -   business-1
1       -   business-1
2       -   business-2 
2       -   business-2 
2       -   business-2 
2       -   business-2 

我想通过配置文件进行查询过滤,并且只计算一次报价,无论它关联了多少技能。

我正在执行类似以下查询的操作:

代码语言:javascript
复制
SELECT business_name, COUNT(*)
FROM Offer INNER JOIN
     ternary_relationship
     ON Offer.id_Offer = ternary_relationship.id_Offer AND
        id_Profile =  '1'
 GROUP BY business_name
 ORDER BY COUNT(*) DESC;

我见过several possible解决方案,但我不能让任何人为我的案例工作。当我为两个id_Offer命名分组时,或者当我只按id_Offer过滤时,它也不工作。我总是在某个地方得到重复的条目。

EN

回答 1

Stack Overflow用户

发布于 2018-05-22 23:28:38

您可以使用DISTINCT执行JOINS,只需使用一次

代码语言:javascript
复制
select o.business_name, count(distinct tr.id_Offer) counts
from Offer o inner join 
     ternary_relationship tr on 
     o.Offer = tr.id_Offer 
where tr.id_Profile = ?
group by o.business_name
order by 2 desc;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50471137

复制
相关文章

相似问题

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