Chinaunix首页 | 论坛 | 博客
  • 博客访问: 539137
  • 博文数量: 252
  • 博客积分: 6057
  • 博客等级: 准将
  • 技术积分: 1635
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-21 10:17
文章分类

全部博文(252)

文章存档

2013年(1)

2012年(1)

2011年(32)

2010年(212)

2009年(6)

分类: 数据库开发技术

2010-07-16 10:45:54

已解决
引入外部参数的多表联合查询如何写sql语句?
悬赏分:0 - 解决时间:2009-2-2 09:17
例如两个表。表1列为:id name passwd, 表2 为id name title d_date. 我现在想查询表2 id=5 的那条记录的name对应的表1 中的passwd,请问完整的sql怎么写? 
提问者: -
最佳 答案
联合查询:
SELECT [passwd]
FROM [表1]
INNER JOIN [表2]
ON ([表1].[name] = [表2].[name])
WHERE ([表2].[id] = 5)

因为你的字段只来自于一张表,不用联合的话,用子查询也可以:
SELECT [passwd]
FROM [表1]
WHERE ([name] IN (
SELECT [name]
FROM [表2]
WHERE ([id] = 5)
))
 2

回答者: 知道就是力量 -    2009-1-13 10:29




已解决

多表联合查询SQL语句怎么写
悬赏分:10 - 解决时间:2009-5-2 22:39
表a:  ID  a1, a2,  a3,  a4, a5
表b: id aid, b1, b2, b3, b4
表c: id aid, c1, c2, c3, c4
表d: id aid, d1, d2, d3, d4
表e: id aid, e1, e2, e3, e4
表f: id aid, f1, f2, f3, f4
一共五个表,表a代表信息,b到f表代表内容,他们aid与a表中的id对应,所有内容均为数字,现在我想查出 b1<16 and c1=20 and d3>80 and e4<25 and f1=1.8 符合这些条件的a,应该怎样写SQL语句.下面这么写对吗,为什么什么也查不出呀


SELECT a.* FROM ((((b INNER JOIN c ON b.aid = c.aid) INNER JOIN d ON b.aid=d.aid) INNER JOIN e ON b.aid = e.aid) INNER JOIN f ON b.aid = f.aid) INNER JOIN a ON b.aid = a.id WHERE (((b.b1)<16) AND ((c.c1)=20) AND ((d.d3)>80) AND ((e.e4)=,25 AND ((f.f1)=1.8));
问题补充:
谢谢你们的回答,不过,第一个不能用,调试显示语法错误(操作符丢失)

第二个也是查不出东西来
提问者: -
最佳 答案
select a.* from a,b,c,d,e,f
where a.id=b.aid
and a.id=c.aid
and a.id=d.aid
and a.id=e.aid
and a.id=f.aid
and b.b1<16
and c.c1=20
and d.d3>80
and e.e4<25
and f.fa=1.8
 6

回答者: 知道就是力量 -    2009-5-2 21:37

提问者对于答案的评价:
是我搞错了,这个没问题,非常好,谢谢!!


阅读(629) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

chinaunix网友2010-07-16 15:50:47

求ADOQuery多表连接查询的添加,编辑,删除结合dbg http://www.qqkjl.com/delphi2005/20100604/5536.html delphi access 多表操作,如何解决 http://topic.csdn.net/u/20080422/14/5bceb535-3b95-4a3f-9280-040084cbc759.html 用adoquery多表查询和删除数据的问题[问题点数:20分,结帖人:jojoxyz] http://topic.csdn.net/t/20050814/20/4208455.html