如何组合这些表?

时间:2011-09-22 21:46:16

标签: sql sql-server sql-server-2005

在sql server 2005中,如何获取下面表3中的结果集? table3是通过组合table1和table2创建的,如下所示:

table1.empid
   table1.ticket
   table2.identid

对table1加入table2的更新不起作用,因为empid不是唯一的。如果该员工已在使用该ID,则需要增加到下一个table2.indentid。

此外,还没有创建下面的表3。它是table1和table2的生成集。我使用table3作为生成集应该是什么样子的示例。

table1
empid   ticketid   indentid
1       7          20
1       9          4
2       9          21

table2
indentid   empid
90         1
91         1
92         2

table3 
empid   ticketid  table1_indentid    table2_identid
1       7         20                 90
1       9         4                  91
2       9         21                 92

2 个答案:

答案 0 :(得分:1)

table1和table2之间的唯一连接是empid table3示例的第1行和第2行具有相同的empid,因此它们也应该具有相同的table2_identid。您的示例不正确,或者无法查询现有数据。


但也许这就是你想要的:
如果您加入这样的表

SELECT empid, ticketid, t1.indentid as table1_indentid, t2.identid as table2_identid
FROM table1 AS t1
    INNER JOIN table2 AS t2 ON t1.empid = t2.empid

你会得到

table3 
empid   ticketid  table1_indentid    table2_identid
1       7         20                 90
1       7         20                 91
1       9         4                  90
1       9         4                  91
2       9         21                 92

答案 1 :(得分:0)

这就是你需要的:

select t1.empid, t1.ticketid, 
       t1.indentid as table1_indentid, 
       t2.indentid as table2_identid
from table1 t1 
inner join table2 t2 on t1.empid = t2.empid

但是,您应该考虑审核您的数据结构。