表A: ID(Primary Key) Name 表B: ID(Primary Key) Name 01 北京 01 北京 02 上海 02 上海 03 天津 04 杭州 04 杭州 05 广州 06 成都我尝试了Select语句不同的表达方法,虽然结果相同,但背后的逻辑是不太一样的。
1、SELECT A.ID, A.Name FROM A INNER JOIN B ON A.ID=B.ID;
感觉这个写法比较简洁,INNER JOIN 帮你把相同的记录筛选出来了,我只是把我要的字段列一下。 注意在Access中,返回的查询下部有新增记录空白行。2、SELECT A.ID, A.Name FROM A, B WHERE (A.ID=B.ID);
我分析下来,这样写相当于自己在完成 INNER JOIN的工作。详细的步骤应该是:A中全部记录跟B中第一条记录逐一对比,找到相符的就记录下来;A中全部记录再跟B中第二条记录逐一对比,相符的记录下来;如此类推,直到B表的最后一条记录。 注意在Access中,返回的查询下部“没有”新增记录空白行。 3、SELECT A.ID, A.Name FROM A, B WHERE A.ID in (B.ID); 注意在Access中,返回的查询下部“没有”新增记录空白行。 4、SELECT A.ID, A.Name FROM A WHERE A.ID in (select B.ID from B); 这里用到了“子查询”。注意在Access中,返回的查询下部有新增记录空白行。