如何用SQL查询两个表的内容

wqjywyg2009 2009-08-24 02:54:14
数据库有两个表一个sort放一级目录名称,另一个products放产品。
sort表有 sort_id sort_content
products表有 hw_id nsort_id hw_content


功能是:一打开网站就默认显示sort表里的sort_content内容。接下来,如果sort_id 不为空nsort_id为空则显示sort里面的sort_content 如果sort_id 不为空,nsort_id也不为空。则显示products 里面的 hw_content
各位大哥教小第怎么做吧。感激!!!!
...全文
837 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
凡夫与俗子 2009-08-28
  • 打赏
  • 举报
回复
个人觉得最好是建个查询(视图),把两个表关联字段连接,sql就直接sql这个表。方便快捷。


PS:老理真是勤劳的小蜜蜂啊!
wqjywyg2009 2009-08-26
  • 打赏
  • 举报
回复
这是我的原代码:大家看看哪里要改:
<% Set rs1=Server.CreateObject("ADODB.RecordSet")
if request.QueryString("sort_id")="" and request.QueryString("nsort_id")="" then
sql="select * from sort where sort_id like '16 ' "
elseif request.QueryString("sort_id")<>"" and request.QueryString("nsort_id")="" then
sql="select * from sort where sort_id="&request.QueryString("sort_id")
rs1.Open sql,conn,1,3
%>
<%if not rs1.eof then%>
<span style="padding:10px;"><%=rs1("sort_content")%></span>
<%else%>
<span style="padding:10px;"></span>
<%end if%>
<%
rs1.close
set rs1=nothing
end if
%>
<%
Set rs=Server.CreateObject("ADODB.RecordSet")
if request.QueryString("nsort_id")="" then
sql="select top 1 * from products where sort_id="&"1"
else
sql="select * from products where nsort_id="&request.QueryString("nsort_id")
end if
rs.Open sql,conn,1,3
%>
<%if not rs.eof then%>
<span style="padding:10px;"><%=rs("hw_content")%></span>
<%else%>
wqjywyg2009 2009-08-26
  • 打赏
  • 举报
回复
问题补充:这个功能是做在一个网站上的:http://www.hy696.com/hy696/index.asp
就是一打开该网站就显示手机定位里的大类也就是sort表里的最后一个sort_content。
nsort 是二级目录,是大类里面的小类。
整个功能就是一打开网站就显示手机定位里的大类也就是sort表里的最后一个sort_content。
接下来,如果大类(sort_id)不为空,小类(nsort_id)为空,就显示大类的简介也就是sort表里的sort_content。
如果大类(sort_id)不为空,小类(nsort_id)也不为空,就显示products表里的对应(sort_id,nsort-id)的hw_content。。。不明白的可以加我Q158104640。。。讨论
loveinet_168 2009-08-26
  • 打赏
  • 举报
回复
做if判断
toury 2009-08-26
  • 打赏
  • 举报
回复

<%
Set rs=Server.CreateObject("ADODB.RecordSet")
sort_id=request.QueryString("sort_id")
nsort_id=request.QueryString("nsort_id")
f=""'字段

if len(sort_id)=0 and len(nsort_id)=0 then
sql="SELECT TOP 1 * FROM [sort] WHERE sort_id like '16' ORDER BY sort_id DESC"
f="sort_content"
elseif len(sort_id)>0 and len(nsort_id)>0 then
sql="SELECT * FROM [sort] WHERE sort_id="&sort_id
f="sort_content"
elseif len(nsort_id)=0 then
sql="SELECT TOP 1 * FROM products WHERE nsort_id=1"
f="hw_content"
else
sql="SELECT * FROM products WHERE nsort_id="&nsort_id
f="hw_content"
end if

rs.Open sql,conn,1,1

if not rs.eof then
response.write"<span style='padding:10px;'>"&rs(f)&"</span>"
else
response.write"<span style='padding:10px;'> </span>"
end if
rs.close
set rs=nothing

这样试一下呢?
韩誉 2009-08-26
  • 打赏
  • 举报
回复
建议楼主先去学 数据库

一看你表设计 就缺乏基本数据库知识
wqjywyg2009 2009-08-26
  • 打赏
  • 举报
回复
8楼的好像不行啊。。。一打开网站还是不会默认显示最后一个sort_id 的 sort_content 啊。。。
never exists 2009-08-26
  • 打赏
  • 举报
回复
<% Set rs1=Server.CreateObject("ADODB.RecordSet")
if request.QueryString("sort_id")<>"" then
If request.QueryString("nsort_id")="" then
sql="select * from sort where sort_id="&request.QueryString("sort_id")
Else
sql="select * from products where sort_id="&request.QueryString("nsort_id")
End If
Else

sql="select * from sort where sort_id like '16 ' "

End if

rs1.Open sql,conn,1,3
%>
<%if not rs1.eof then%>
<span style="padding:10px;"><%If request.QueryString("nsort_id")="" then%> <%=rs1("sort_content")%> <%else%> <%=rs("hw_content")%> <%End if%></span>
<%else%>
<span style="padding:10px;"> </span>
<%end if%>
<%
rs1.close
set rs1=nothing
%>
ROCKRZZ 2009-08-25
  • 打赏
  • 举报
回复
如果是sort_id=nsort_id,可以这样写:
select nsort_id as t1,hw_content as t2 from products -----products表里的内容优先全部显示
select sort_id as t1,sort_content as t2 from sort where not exists
(select * from products where products.nsort_id=sort.sort_id) --products表里没有而sort表里有的内容补充显示,把上面两个用个union就是希望得到的结果

select nsort_id as t1,hw_content as t2 from products
union all
select sort_id as t1,sort_content as t2 from sort where not exists
(select * from products where products.nsort_id=sort.sort_id)
如果有多条记录只显示一条可以加上top 1来控制
ROCKRZZ 2009-08-25
  • 打赏
  • 举报
回复
数据库有两个表一个sort放一级目录名称,另一个products放产品。
sort表有 sort_id sort_content
products表有 hw_id nsort_id hw_content


功能是:一打开网站就默认显示sort表里的sort_content内容。接下来,如果sort_id 不为空nsort_id为空则显示sort里面的sort_content 如果sort_id 不为空,nsort_id也不为空。则显示products 里面的 hw_content
----------------
你的大意应该是products表里的数据优先显示,其实你应该给出两个表的连接关系,到底是
sort_id=nsort_id还是sort_id=hw_id,还是其他什么条件,还是请楼主先说清楚
Dadimamiilove 2009-08-24
  • 打赏
  • 举报
回复

给你以参考

set rs=Server.CreateObject("ADODB.Recordset")'创建了一个用于取得数据中记录的recorset对象
set rs=Server.CreateObject("ADODB.Recordset")'创建了一个用于取得数据中记录的recorset对象
sqlstring="SELECT a.产品编号 ,a.数量,a.录入文员,b.产品编号,b.产品名称,b.单位,b.规格 FROM 成品入库 as a inner join 成品清单 as b on a.产品编号=b.产品编号 WHERE a.审核标记=1"
rs.open sqlstring,conn,1,1
do while not rs.bof and not rs.eof
hongmaohouzi 2009-08-24
  • 打赏
  • 举报
回复
建议将两张表合成一张表,然后再根据条件来判断;或者将两个表建立关联关系,然后再根据条件来判断。
三楼の郎 2009-08-24
  • 打赏
  • 举报
回复
1、不为空是指不等于Null还是不等于空字符串?
2、Sort表的sort_id与Products表的nsort_id什么关系?外键关联?

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧