如何在一个表中合并来自不同表的单独列

时间:2019-03-29 19:47:45

标签: sql visual-foxpro dbf

我有以下VFP游标(表):

Cursor 1 Cursor 2 Cursor 3

我需要这个结果:

Final Cursor

我已经尝试了FULL JOIN,CROSS JOIN,UNION ALL等。但是我无法解决问题。

请给我任何帮助。

我正在使用Visual FoxPro 9.0

代码如下:

lkey = SYS(2015) 
CREATE CURSOR cur1 (unico c(10),valor c(2))
INSERT INTO cur1 values(lkey, 'A1')
INSERT INTO cur1 values(lkey, 'A2')
INSERT INTO cur1 values(lkey, 'A3')

CREATE CURSOR cur2 (unico c(10),valor c(2))
INSERT INTO cur2 values(lkey, 'B1')
INSERT INTO cur2 values(lkey, 'B2')
INSERT INTO cur2 values(lkey, 'B3')    

INSERT INTO cur3 values(lkey, 'C1')
INSERT INTO cur3 values(lkey, 'C2')
INSERT INTO cur3 values(lkey, 'C3')

谢谢!

1 个答案:

答案 0 :(得分:3)

如果只有记录在光标中的位置构成连接条件,则可以使用recno()

SELECT cur1.valor, ;
       cur2.valor, ;
       cur3.valor ;
       FROM (SELECT valor, ;
                    RECNO() rn ;
                    FROM cur1) cur1 ;
            FULL JOIN (SELECT valor, ;
                              RECNO() rn ;
                              FROM cur2) cur2 ;
                      ON cur2.rn = cur1.rn ;
            FULL JOIN (SELECT valor, ;
                              RECNO() rn ;
                              FROM cur3) cur3 ;
                      ON cur3.rn = cur2.rn