首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用复合主键查询表

使用复合主键查询表
EN

Stack Overflow用户
提问于 2011-04-20 23:01:05
回答 2查看 4.1K关注 0票数 3

我有一个包含复合主键的表。这是一个交叉引用表,如下所示

代码语言:javascript
复制
Table 
ID    Relationship             ID2
1     Spouse                   10
2     Employee                 20
2     Former Employee          20
3     Former Employee          30
4     Child                    40

我正在尝试编写一个ID2匹配的查询,您的员工和前员工都有相同的ID

代码语言:javascript
复制
ID    Relationship             ID2
2     Employee                 20
2     Former Employee          20      

感谢您的帮助!!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-20 23:08:49

OracleSQL ServerPostgreSQL

代码语言:javascript
复制
SELECT  *
FROM    (
        SELECT  t.*,
                COUNT(*) OVER (PARTITION BY id, id2) AS cnt
        FROM    mytable t
        WHERE   relationship IN ('Employee', 'Former Employee')
        ) q
WHERE   cnt = 2

跨平台版本:

代码语言:javascript
复制
SELECT  t.*
FROM    (
        SELECT  id, id2
        FROM    mytable
        WHERE   relationship IN ('Employee', 'Former Employee')
        GROUP BY
                id, id2
        HAVING  COUNT(*) = 2
        ) q
JOIN    mytable t
ON      t.id = q.id
        AND t.id2 = q.id2
        AND t.relationship IN ('Employee', 'Former Employee')
票数 2
EN

Stack Overflow用户

发布于 2011-04-20 23:17:32

代码语言:javascript
复制
select * from table where ID2 in (
   select ID2 from table where count(ID2) > 1) t
order by ID2
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5732432

复制
相关文章

相似问题

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