我第一次查询时,使用下列查询出来htd_icode, positions_position, fxgc_icode(生成临时表list_upd_zfbh1 ),语句如下:
SELECT a.htd_icode AS htd_icode, b.positions_position AS positions_position, c.fxgc_icode AS fxgc_icode
FROM updates AS a, upd_positions AS b, upd_zfbh AS c
WHERE a.htd_icode=b.htd_icode And a.htd_icode=c.htd_icode And b.positions_position=c.positions_position;
第二次查询合用了第一次的查询生成的临时表(list_upd_zfbh1 )就不行了:
SELECT a.htd_icode, a.positions_position, a.fxgc_icode FROM pos_fxgc AS a
WHERE a.fxgc_icode Not In (select b.fxgc_icode from list_upd_zfbh1 b where a.htd_icode=b.htd_icode and a.positions_position=b.positions_position and a.fxgc_icode= b.fxgc_icode)
主要是不能这样写:
a.htd_icode=b.htd_icode and a.positions_position=b.positions_position and a.fxgc_icode= b.fxgc_icode
如果第二次使用的不是临时数据表就行,是什么原因,但是我想用第一次的查询的结果,再进行第二个查询处理。
我的想法是这样的,list_upd_zfbh1 (查询)是由updates , upd_positions, upd_zfbh 三个表的数据组成,我想在查询pos_fxgc 表中去除list_upd_zfbh1 查询数据后的结果。
如:
pos_fxgc 数据:
1 2 33
2 5 66
4 5 7
list_upd_zfbh1 (查询):
1 2 33
我想只得到:
2 5 66
4 5 7
如何实现这个查询。
[此贴子已经被作者于2004-4-12 8:40:58编辑过]
|