注册 登录
编程论坛 VFP论坛

求助,糊涂了,两个表查询,有的蒙对了,有的却漏掉数据,求大侠出手.

jinanshui 发布于 2021-05-17 09:37, 2032 次点击
gaoxiao表.dbf中的学校性质是正确的,官方的,校对分析表新.dbf的学校性质是手工输入,不一定准确,
(1)现在要根据gaoxiao表.dbf在校对分析表新.dbf找出那些学校性质是公办的,看看输入的对不对?
SELECT *  FROM 校对分析表新  WHERE  校对分析表新.学校代码 = gaoxiao表.学校代码 AND 校对分析表新.学校性质 = gaoxiao表.学校性质
这个只出现北京大学的数据

SELECT *  FROM 校对分析表新  WHERE  校对分析表新.学校代码 != gaoxiao表.学校代码 AND 校对分析表新.学校性质 = gaoxiao表.学校性质
这个就没有北京大学的数据,只有其它学校性质为公办的学校数据
(1)现在要根据gaoxiao表.dbf在校对分析表新.dbf找出那些学校性质是民办的,看看输入的对不对?
SELECT *  FROM 校对分析表新  WHERE  校对分析表新.学校代码 != gaoxiao表.学校代码 AND 校对分析表新.学校性质 != gaoxiao表.学校性质
这个我都不知道怎么蒙对了?
只有本站会员才能查看附件,请 登录
16 回复
#2
吹水佬2021-05-17 10:56
以下是引用jinanshui在2021-5-17 09:37:42的发言:

(1)现在要根据gaoxiao表.dbf在校对分析表新.dbf找出那些学校性质是民办的,看看输入的对不对?
SELECT *  FROM 校对分析表新  WHERE  校对分析表新.学校代码 != gaoxiao表.学校代码 AND 校对分析表新.学校性质 != gaoxiao表.学校性质
这个我都不知道怎么蒙对了?

1、看看输入的对不对?
想看什么?
2、校对分析表新.学校代码 != gaoxiao表.学校代码 AND 校对分析表新.学校性质 != gaoxiao表.学校性质
随便两个本来是正确的都能满足这个条件

假设学校代码都是正确的,看看学校性质输入不对的:
SELECT a.学校代码,a.学校性质,a.院校名称,b.学校代码,b.学校性质,b.学校名称;
    FROM 校对分析表新 a, gaoxiao表 b;
    WHERE a.学校代码==b.学校代码 AND a.学校性质!=b.学校性质


#3
jinanshui2021-05-17 11:19
回复,吹水佬老师,好的,我看看.
#4
sdta2021-05-17 11:19
SELECT a1.学校代码, a1.学校名称, a1.学校性质, a2.学校性质 as xz2 FROM gaoxiao表 a1 LEFT JOIN 校对分析表新 a2 ON a1.学校代码 == a2.学校代码 ORDER BY xz2
只有本站会员才能查看附件,请 登录


[此贴子已经被作者于2021-5-17 11:21编辑过]

#5
jinanshui2021-05-17 11:24
吹水佬老师,谢谢,您好,您的是正确的,两个表的学校代码都是正确的
但是我不明白的是下面的问题
(1)现在要根据gaoxiao表.dbf在校对分析表新.dbf找出那些学校性质是公办的,看看输入的对不对?
SELECT *  FROM 校对分析表新  WHERE  校对分析表新.学校代码 = gaoxiao表.学校代码 AND 校对分析表新.学校性质 = gaoxiao表.学校性质
这个只出现北京大学的数据

SELECT *  FROM 校对分析表新  WHERE  校对分析表新.学校代码 != gaoxiao表.学校代码 AND 校对分析表新.学校性质 = gaoxiao表.学校性质
这个就没有北京大学的数据,只有其它学校性质为公办的学校数据
(2)现在要根据gaoxiao表.dbf在校对分析表新.dbf找出那些学校性质是民办的,看看输入的对不对?
SELECT *  FROM 校对分析表新  WHERE  校对分析表新.学校代码 != gaoxiao表.学校代码 AND 校对分析表新.学校性质 != gaoxiao表.学校性质
这个我都不知道怎么蒙对了?
#6
sdta2021-05-17 11:26
红框中应该是漏输入了三个院校
#7
sdta2021-05-17 11:29
比较的前提是 学校代码要一致,否则是空谈!
#8
吹水佬2021-05-17 11:37
回复 5楼 jinanshui
上面的代码就是比对:学校代码相同而学校性质不同,不管是公办或民办,不对的都查出现来
#9
吹水佬2021-05-17 11:39
以下是引用jinanshui在2021-5-17 11:24:11的发言:

SELECT *  FROM 校对分析表新  WHERE  校对分析表新.学校代码 = gaoxiao表.学校代码 AND 校对分析表新.学校性质 = gaoxiao表.学校性质

SELECT *  FROM 校对分析表新  WHERE  校对分析表新.学校代码 != gaoxiao表.学校代码 AND 校对分析表新.学校性质 = gaoxiao表.学校性质

SELECT *  FROM 校对分析表新  WHERE  校对分析表新.学校代码 != gaoxiao表.学校代码 AND 校对分析表新.学校性质 != gaoxiao表.学校性质
这个我都不知道怎么蒙对了?

你的代码有运行过吗?
我这运行不了?
#10
jinanshui2021-05-17 11:58
老师,我的可以运行
#11
jinanshui2021-05-17 12:04

回复,sdta老师,

老师,gaoxiao表.dbf的学校,在校对分析表新.dbf可以没有,但是在校对分析表新.dbf有的学校,在gaoxiao表.dbf一定有

[此贴子已经被作者于2021-5-17 12:06编辑过]

#12
jinanshui2021-05-17 12:09
回复,吹水佬老师,我的可以
只有本站会员才能查看附件,请 登录
#13
jinanshui2021-05-17 12:13
以下是引用sdta在2021-5-17 11:26:59的发言:

红框中应该是漏输入了三个院校

老师,这三个学校不在山东招生,所以不在校对分析表新.dbf中
#14
吹水佬2021-05-17 12:46
回复 12楼 jinanshui
那个用use打开的表,只有当前的记录起作用,记录指针是不会动的
#15
mywisdom882021-05-17 13:25
回复 楼主 jinanshui
你语句错误
1.用 Where 关联时,要求2个表都要在 from 后面,如
select t1.* from 校对分析表新 as t1,gaoxiao表 as t2 where t1.学校代码=t2.学校代码 and t1.学校性质=t2.学校性质

2.用 LEFT JOIN 关联
select t1.* from 校对分析表新 as t1;
left join gaoxiao表 as t2 on t1.学校代码=t2.学校代码 and t1.学校性质=t2.学校性质

#16
mywisdom882021-05-17 13:30
只出现北京大学的数据
是因为,你高校表的指针在第1位,所以,就是显示北京的,如果你这样
USE gaoxiao表.DBF IN 0
GO 2
USE 校对分析表新.DBF IN 0
SELECT *  FROM 校对分析表新  WHERE  校对分析表新.学校代码 = gaoxiao表.学校代码 AND 校对分析表新.学校性质 = gaoxiao表.学校性质
你就只显示 中国人民大学 的了
是因为你语句问题,见上楼
#17
jinanshui2021-05-17 13:50
以下是引用mywisdom88在2021-5-17 13:30:29的发言:

只出现北京大学的数据
是因为,你高校表的指针在第1位,所以,就是显示北京的,如果你这样
USE gaoxiao表.DBF IN 0
GO 2
USE 校对分析表新.DBF IN 0
SELECT *  FROM 校对分析表新  WHERE  校对分析表新.学校代码 = gaoxiao表.学校代码 AND 校对分析表新.学校性质 = gaoxiao表.学校性质
你就只显示 中国人民大学 的了
是因为你语句问题,见上楼



谢谢老师,我想想.
1