两个表串联

时间:2012-09-08 20:12:28

标签: sql ms-access

我在数据库上坚持了两天的作业......

我在MS Access中工作,我有两个表R和S,行数相同。他们没有任何关系。 假设表R只有两列(名为A, B),因此表S(名为B, C).

在表R中,只有三个记录:(a1,b1), (a1,b2), (a2,b1)

在表S中只有三个记录:(b1,c1), (b1,c3), (b2,c2)

我需要将这两个表连接成一个,所以新表将有四列(RA,RB,SB,SC)并将具有下一个记录:

(a1,b1,b1,c1),  
(a1,b2,b1,c3),  
(a2,b1,b2,c2)

这就是全部......问题是:我如何用SQL实现这一点?

4 个答案:

答案 0 :(得分:3)

非常做作,但在MS Access中运行。

SELECT x.f0, x.F1, y.F0, y.F1
FROM (
     SELECT DISTINCT r.F0, r.F1, 
         (select count(*) 
         from r a 
         where a.f0+a.f1<=r.f0+r.f1) AS Expr1
      FROM r)  AS x 
INNER JOIN (
     SELECT DISTINCT s.F0, s.F1, 
        (select count(*) 
         from s a 
         where a.f0+a.f1<=s.f0+s.f1) AS Expr1
     FROM s)  AS y 
ON x.Expr1 = y.Expr1;

表S

F0  F1 <-- Field names
b1  c1
b1  c3
b2  c2

表R

F0  F1 <-- Field names
a1  b2
a2  b1
a1  b1

查询结果

x.F0    x.F1    y.F0    y.F1
a1      b1      b1      c1
a1      b2      b1      c3
a2      b1      b2      c2

答案 1 :(得分:0)

看起来你想要做的是按行号加入两个表。查看this thread

有关如何执行此操作的示例。

答案 2 :(得分:0)

我和Chase就这个问题,似乎你想做一个SQL连接,如:

SELECT *
FROM TableR R, TableS S
WHERE R.id=S.id;

这说的只是简单的英语选择所有列 > Table R和{{1} } {strong} Table S中的主键ID等于Table R

中相同的主键ID

不确定您使用的是哪个数据库,但这里有点more information

答案 3 :(得分:0)

好的,我的答案与其他答案截然不同。

你说两张桌子之间没有关系。其他人都试图在R.B&amp; S.B,但你说没有关系。

所以,如果没有关系,那么你就不要把它放进去。所以你得到的是: SELECT R. ,S。 FROM R,S

结果将是两个表中的每一列,并且返回的行将等于R中来自S行的行。在上面的示例中,您将获得9条记录。