标题:请教两表查询
只看楼主
love0428
Rank: 1
等 级:新手上路
帖 子:14
专家分:5
注 册:2023-1-25
结帖率:100%
已结贴  问题点数:20 回复次数:7 
请教两表查询
t1(xh,xm,x1,x2,y1,y2,...)
t2(xh,xm,y1,y2,z2,z2...)
关联字段xh,现在要实现两表查询,查询结果包括两表所有字段(去掉重复字段),查询结果xh,xm,x1,x2,y1,y2,z1,z3...,请问怎么写select命令?
说明:两个表字段比较多,重复字段也不少,但内容是一样的。不想在select中一个个字段罗列,求教有没有什么更好的方法?
搜索更多相关主题的帖子: select 重复 结果 字段 查询 
2023-01-28 20:42
laowan001
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:54
帖 子:802
专家分:1914
注 册:2015-12-30
得分:20 
可以写个程序选出不重复的字段名,然后构造SQL语句
如果是固定的两个表,还是麻烦一回一个个的写吧
2023-01-28 20:59
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
程序代码:
CREATE CURSOR t1 (xm c(10), xh c(10), x1 c(4), x2 c(6))
CREATE CURSOR t2 (xm c(10), xh c(10), y1 c(2), y2 c(6))
AFIELDS(at1, "t1")
AFIELDS(at2, "t2")
lcStr = ""
FOR ln1 = 1 TO ALEN(at1, 1)
    lcStr = lcStr + ",Aa." + at1[ln1, 1]
ENDFOR
lcStr= SUBSTR(lcStr, 2)
FOR ln1 = 1 TO ALEN(at2, 1)
    IF NOT at2[ln1, 1] $ lcStr
        lcStr = lcStr + ",Ab." + at2[ln1, 1]
    ENDIF 
ENDFOR
SELECT &lcStr FROM t1 aa, t2 ab

坚守VFP最后的阵地
2023-01-28 21:23
love0428
Rank: 1
等 级:新手上路
帖 子:14
专家分:5
注 册:2023-1-25
得分:0 
完美解决问题,非常感谢!
2023-01-29 10:14
sdta
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:江苏省连云港市
等 级:版主
威 望:323
帖 子:9621
专家分:26174
注 册:2012-2-5
得分:0 
以下是引用love0428在2023-1-29 10:14:11的发言:

完美解决问题,非常感谢!

如何解决问题的

坚守VFP最后的阵地
2023-01-29 12:53
love0428
Rank: 1
等 级:新手上路
帖 子:14
专家分:5
注 册:2023-1-25
得分:0 
我有两个表,ksb,ksxx。本来是想把表直接改名成t1,t2,但报错提示找不到表,我就用了下面代码实现两表字段整合,非常感谢!
SELECT * FROM ksb INTO TABLE t1
SELECT * FROM ksxx INTO TABLE t2

AFIELDS(at1, "t1")
AFIELDS(at2, "t2")
lcStr = ""
FOR ln1 = 1 TO ALEN(at1, 1)
    lcStr = lcStr + ",Aa." + at1[ln1, 1]
ENDFOR
lcStr= SUBSTR(lcStr, 2)
FOR ln1 = 1 TO ALEN(at2, 1)
    IF NOT at2[ln1, 1] $ lcStr
        lcStr = lcStr + ",Ab." + at2[ln1, 1]
    ENDIF
ENDFOR
SELECT &lcStr FROM t1 aa, t2 ab WHERE aa.ksh=ab.ksh
2023-02-07 15:45
love0428
Rank: 1
等 级:新手上路
帖 子:14
专家分:5
注 册:2023-1-25
得分:0 
回复 5楼 sdta
用的上面的方法
2023-02-07 15:47
yd1954
Rank: 2
来 自:辽宁沈阳
等 级:论坛游民
帖 子:143
专家分:21
注 册:2016-7-1
得分:0 
回复 6楼 love0428
学习,收藏。
2023-02-07 16:09



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-511177-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.108123 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved