Access交流中心

北京 | 上海 | 天津 | 重庆 | 广州 | 深圳 | 珠海 | 汕头 | 佛山 | 中山 | 东莞 | 南京 | 苏州 | 无锡 | 常州 | 南通 | 扬州 | 徐州 | 杭州 | 温州 | 宁波 | 台州 | 福州 | 厦门 | 泉州 | 龙岩 | 合肥 | 芜湖 | 成都 | 遂宁 | 长沙 | 株洲 | 湘潭 | 武汉 | 南昌 | 济南 | 青岛 | 烟台 | 潍坊 | 淄博 | 济宁 | 太原 | 郑州 | 石家庄 | 保定 | 唐山 | 西安 | 大连 | 沈阳 | 长春 | 昆明 | 兰州 | 哈尔滨 | 佳木斯 | 南宁 | 桂林 | 海口 | 贵阳 | 西宁 | 乌鲁木齐 | 包头 |

请大侠看下这个子查询哪里出错了?求指导

access小兵  发表于:2014-12-11 02:10:01  
复制

select T1.小区CI,T1.邻区CI,邻区1.小区CI
FROM
(SELECT 邻区1.小区CI, 邻区1.邻区CI
FROM 邻区1
union
SELECT 邻区1.邻区CI,邻区1.小区CI
FROM 邻区1) as T1 left join 邻区1 on (T1.小区CI=邻区1.小区CI and T1.邻区1=邻区1.邻区CI)
where (邻区1.小区CI is null);

 

Top
竹笛 发表于:2014-12-11 12:55:36
上传一下你的示例,以方便调试SQL代码。

西出阳关无故人 发表于:2014-12-11 18:00:22
select 子查询.小区CI,子查询.邻区CI,子查询.小区CI
FROM
(SELECT 邻区1.小区CI, 邻区1.邻区CI
FROM 邻区1
union
SELECT 邻区1.邻区CI,邻区1.小区CI
FROM 邻区1) as T1 left join 邻区1 on (T1.小区CI=邻区1.小区CI and T1.邻区1=邻区1.邻区CI)
where (邻区1.小区CI is null) as 子查询;

access小兵 发表于:2014-12-13 01:02:27
子查询

怎么把这两步查询通过一步实现?



access小兵 发表于:2014-12-13 01:19:52

我找到方法了。如下,可以达到目的。

SELECT T1.小区CI, T1.邻区CI
FROM (SELECT 邻区1.小区CI, 邻区1.邻区CI
 FROM 邻区1
 union
 SELECT 邻区1.邻区CI,邻区1.小区CI
 FROM 邻区1)  AS T1 LEFT JOIN (select 邻区1.小区CI,邻区1.邻区CI
from 邻区1)  AS T2 ON (T1.邻区CI = T2.邻区CI) AND (T1.小区CI = T2.小区CI)
WHERE (((T2.小区CI) Is Null));

两个疑问:

1、为啥join后不能直接用表来查,必须要select实现。

2、 ON (T1.邻区CI = T2.邻区CI) AND (T1.小区CI = T2.小区CI) 和on (T1.小区CI=邻区1.小区CI and T1.邻区1=邻区1.邻区CI) 有什么区别,前一个在access里面能看到查询的设计视图。后一个就看不到,只能看到SQL界面。虽然都能查询到最终结果。

 

 

 

 



总记录:4篇  页次:1/1 9 1 :