(高分)菜鸟求一句多表查询的 sql 语句。。。。(asp+access)

如题,用的是 asp + access

有 三 个 表,表名分别是:mid1 mid2 left2

这三个表除了表名不一样,其他都一样,字段是:

id(自动编号主键) title(文本) content(备注)

问题1:我想 输出 这三个表中, title 或 content 里面 包含 “你好” 关键字的所有记录。 请写出这句sql语句。

问题2:刚才按照我的想法做了个实验,输出这三个表中,只content 里面包含 “你好” 关键字的所有记录,我写的sql语句如下:

dim sql
sql="select mid1.content,mid2.content,left2.content from mid1,mid2,left2"
sql=sql&"where mid1.content like '%你好%' or mid2.content like '%你好%' or left2.content like '%你好%'"
rs.open sql,conn,1,1

浏览器中验证 为什么 提示 错误呢? 错 在哪啊?

问题3:这 其实 是我写的 一个 网站 的 站内 查询 系统,这 三个表 分别 是 用来 存储 我 网站 主要 三 大版块 文章的表,麻烦 您 说 说 这样 好 吗? 一般 的站内查询系统应该 怎么做啊? 也就是说,麻烦您提提意见啊。。。。

本人 菜鸟,麻烦各位 高手 尽量 用 通俗 的语言 详细 解答,春蚕到死丝方尽,蜡炬成灰泪始干,发扬下 老师 精神吧哈。。。。祝 教师节 快乐啊!!!

感激涕零。。。。。

select 'mid1' as tle,title,content from mid1 where title like '%你好%' or content like '%你好%'
union all
select 'mid2' as tle,title,content from mid2 where title like '%你好%' or content like '%你好%'
union all
select 'left2' as tle,title,content from left2 where title like '%你好%' or content like '%你好%'

一定要用union all,否则相同项就合并到一起了
温馨提示:内容为网友见解,仅供参考
第1个回答  2009-09-11
没有连接数据库表也没有应用数据库驱动应用驱动
有一本CHM专门解释ASP的数据库连接好象叫《ASP应用手册》有详细解释!
第2个回答  2009-09-11
1题
select * from mid1 where title like '%你好%' or content like '%你好%'
union
select * from mid2 where title like '%你好%' or content like '%你好%'
union
select * from left2 where title like '%你好%' or content like '%你好%'

2题
你的sql语句我验证了,虽然没有什么实际意义,因为三表都没关联上,但是并没有语法错误。我想应该是逻辑上的错误。

3题
没有太清楚你的这个问题,笼统的说怎么做。。。从哪说呢?
反正就是检索呗,记得要对检索字段做索引,否则表扫描会很慢。
一个搜索引擎必须要有效率。
第3个回答  2009-09-11
有个办法改变一下的,变成三次查询,
if a1= " " then
sql= " "
else
sql= "select 关键词 from mid1.content "
end if
if a2 <> " " and a1= " " then
sql= "select 关键词 from mid2.content "
else sql=sql+ " union "+ "select 关键词 from mid3.content "
end if
if a3= " " then
sql=sql
else
sql=sql+ " union "+ "select 关键词 from mid3.content"
end if
select case types
case "关键词 "
sql=sql+ " where 关键词 like '% "&querys& "% ' "
case "关键词 "
sql=sql+ " where 关键词 like '% "&querys& "% ' "
case "摘要 "
sql=sql+ " where 摘要 like '% "&querys& "% ' "
end select
if sql= " " then
response.Write( " <script> alert( " "您没有检索数据库中的数据! " "); </script> ")
response.write " <script> history.back(1); </script> "
response.end()
end if
rs.open sql,conn,1,3
if rs.eof and rs.bof then
response.Write( " <script> alert( " "数据库中没有您要检索的数据! " "); </script> ")
response.write " <script> history.back(1); </script> "
response.end()
end if
相似回答