从SQL Server表

时间:2017-08-01 08:30:40

标签: sql-server sql-server-2008

表1:

Name      address    city     id
--------------------------------
abc       123        def      1
def       145        dsa      2

表2:

Job        Description     id
-----------------------------------
work1      empl            1
work2      waiter          1
work3      empl            1
work3      electrician     1
work3      plumber         1
job1       empl4           2
job5       empl5           2
job3       empl 2          2

我有这两张桌子。

  • 表1存储人员详细信息,如“姓名,地址,城市,Id”
  • 表2列出了人员的工作细节,如“工作,描述,身份证”。

在表2中,人员工作细节可能包含许多具有相同ID的记录。但我需要的是,只有当工作细节记录大于5时,才使用表2的id从表1“名称,地址,城市”中获取记录。

2 个答案:

答案 0 :(得分:0)

您可以尝试此查询:

select * 
from Table1 as a
where a.id in
    (select distinct b.id 
        from Table2 as b
        group by b.id
        having count(id)>5)

首先,在内部选择中,您获得的行数超过5行,然后从表1中选择与该条件匹配的行

答案 1 :(得分:-2)

SELECT * FROM Table1
WHERE (
    SELECT COUNT(*) FROM Table2
    WHERE Table1.id = Table2.id
) > 5