Office中国论坛/Access中国论坛
标题:
求一个查询语句
[打印本页]
作者:
情比金坚
时间:
2007-12-7 20:59
标题:
求一个查询语句
(不好意思,原来的描述有错误)
有二个表;
表1: 字段1,数字型,有重复; 字段2,数字型,有重复
表2: 字段1,数字型,有重复; 字段2,数字型,有重复
求查询:表1的字段1=1,字段2与(表2的字段1=1中的字段2)不重复的内容
要一个查询完成,不要用not in (因为那个太慢)
例子在4楼
,
不知道我表达清楚了没?
表1的字段1=1成为一个数据集
表2的字段1=1成为一个数据集,
要比较这两个数据集中不重复的字段2
要是分步解决可以实现,但是我希望一条语句搞定.
[
本帖最后由 情比金坚 于 2007-12-8 02:47 编辑
]
作者:
andymark
时间:
2007-12-7 21:26
能上传例子吗
作者:
Victor_Duane
时间:
2007-12-7 21:34
SELECT [qid]-[qid2] AS qidx, [qty]-[qty2] AS qtyx
FROM tbl1 INNER JOIN tbl2 ON tbl1.qid = tbl2.qid2
WHERE ((([qid]-[qid2])<>0)) OR ((([qty]-[qty2])<>0));
这样行不行
作者:
Victor_Duane
时间:
2007-12-7 21:39
对了qid-qid2是多余的,因为是内联的关系,你可以设成左联或右联
这样就筛除了ID不同的值,然后第二个字段相减一下如果不是0就是不同了
作者:
Victor_Duane
时间:
2007-12-7 21:40
如果第二字段是文本,可用STRCOMP这个函数来对比数据
作者:
情比金坚
时间:
2007-12-8 02:38
[attach]27152[/attach]
作者:
sgrshh29
时间:
2007-12-8 07:43
如果只是要找出第一个表中符合条件的纪录,用下面的查询试试。如果要同时找出第一个表和第二个表中符合条件的纪录,可以在这个查询基础上用联合查询。
select a.*
from [select * from tab1 where tb1_lesson=1;]. as a left join [select * from tab2 where tab2_lesson=1;]. as b on a.tb1_word = b.tab2_word
where b.tab2_word is null
作者:
Victor_Duane
时间:
2007-12-8 08:47
不是很明白,你要得到什么结果了
作者:
andymark
时间:
2007-12-8 20:12
不知是不是你要的结果
SELECT a.tb1_Lesson, a.tb1_Word
FROM tab1 AS a LEFT JOIN [SELECT tab1.tb1_Lesson, tab1.tb1_Word
FROM tab1 INNER JOIN tab2 ON (tab1.tb1_Word = tab2.tab2_word) AND (tab1.tb1_Lesson = tab2.tab2_lesson)
]. AS b ON (a.tb1_Word = b.tb1_Word) AND (a.tb1_Lesson = b.tb1_Lesson)
WHERE (((b.tb1_Word) Is Null))
ORDER BY a.tb1_Lesson, a.tb1_Word
复制代码
作者:
情比金坚
时间:
2007-12-8 22:18
谢谢!!
作者:
zhiyan
时间:
2007-12-9 01:20
SELECT [qid]-[qid2] AS qidx, [qty]-[qty2] AS qtyx
FROM tbl1 INNER JOIN tbl2 ON tbl1.qid = tbl2.qid2
WHERE ((([qid]-[qid2])<>0)) OR ((([qty]-[qty2])<>0));
作者:
Victor_Duane
时间:
2007-12-10 13:57
最终是什么答案???
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3