读书人

三个表关联查询SQL语句该如何写

发布时间: 2012-12-18 12:43:41 作者: rapoo

三个表关联查询,SQL语句该怎么写
比如我有三个表

表A

ID NAME

表B

ID Address tell

表C

ID Time

其中ID是相关联的,ID是表A的主键,其他表的外键,我现在想输入一个姓名去查询表A的ID,然后根据ID区查询其他两个表的地址,电话和时间,结果倒是可以查询出来,但是很多结果是重复的,有什么问题呢?

select a.id,a.name,b.id,b.address,b.tell,c.id,c.time from 表A a,表B b,表C c where name='"+name+"'and a.id=b.id and b.id=c.id and c.id=a.id

[最优解释]
select distinct a.id,a.name,b.address,b.tell,c.time from 表A a,表B b,表C c where name='"+name+"'and a.id=b.id and a.id=c.id
[其他解释]
SELECT B.*,C.*
FROM B INNER JOIN C ON B.ID=C.ID
WHERE B.ID IN(SELECT ID FROM A WHERE NAME='"+name+"')
[其他解释]
distinct。。。。这个是重点。select distinct ****
[其他解释]
2楼正解

引用:
SELECT B.*,C.*
FROM B INNER JOIN C ON B.ID=C.ID
WHERE B.ID IN(SELECT ID FROM A WHERE NAME='"+name+"')

读书人网 >asp.net

热点推荐