飙马 发表于 2008-4-26 14:00

一个表中查询的问题?

A表   id1  姓名  地址 ....
B表   id2  证件  分类 ....
id1与id2是关连的

现在要查:A表中,姓名具有相同值的(count(同一姓名)>=2)
          B表中,分类具有相同值的(count(同一分类)>=2)
          并且id1=id2

    的所有id1(或者说id2)

[[it] 本帖最后由 飙马 于 2008-4-27 10:38 编辑 [/it]]

madpbpl 发表于 2008-4-26 15:14

楼主是这个意思?
select id1 from A,B where A.姓名=B.姓名 and A.分类=B.分类

飙马 发表于 2008-4-26 16:56

不是这个意思,前面表述得不够清楚,我重新编辑了一下,你再看看。

happynight 发表于 2008-4-28 10:03

Create Table #A (id1 int,姓名 varchar(10),地址 varchar(10))
Create Table #B (id2 int,证件 varchar(10),分类 varchar(10))

INSERT INTO #A Values(1,'张三','测试')
INSERT INTO #A Values(1,'张三','测试')
INSERT INTO #A Values(2,'李四','测试')
--SELECT * FROM #A

INSERT INTO #B Values(1,'身份证','测试')
INSERT INTO #B Values(1,'身份证','测试')
INSERT INTO #B Values(2,'身份证','测试2')
--SELECT * FROM #B

SELECT id1,姓名,分类 FROM #A INNER JOIN #B ON #A.id1=#B.id2 GROUP BY id1,姓名,分类 Having Count(*)>=2


DROP TABLE #A
DROP TABLE #B

provoke 发表于 2008-4-29 01:51

select distinct id1 from A,B         --或select distinct id2--
where id1=id2 and id1 in (
    select id1 from A group by id1 having count(姓名)>=2)
and id2 in (
    select id2 from B group by id2 having count(分类)>=2)

makebest 发表于 2008-4-29 08:53

不知道A表和B表的主键是什么啊

页: [1]

编程论坛