MSSQL查询问题?高手请进~
现在的代码是这样的:
intPageSize=10
strPageUrl="jc_product.asp?F="&request("F")&"&S="&request("S")&""
SQLSelect="select a.I_JCID,a.I_MemberID,a.C_JCName,a.C_Img,a.C_Price,a.C_Description,a.DT_AddDate,a.L_Check,b.C_CompanyName,b.C_Provice,b.C_City from TB_JCProducts as a inner join TB_Company as b on a.I_MemberId=b.I_MemberID"
SQLWhere=" where 1=1"
if F<>"" then
SQLWhere=SQLWhere&" and I_Class1="&F&""
end if
if S<>"" then
SQLWhere=SQLWhere&" and I_Class2="&S&""
end if
SQLOrder=" order by I_JCID desc"
TB_JCProducts 是产品的表
TB_Company 是对应公司的表
现在是想查询出TB_JCProducts中不相同的公司名称的值,公司名称在TB_Company(字段名为C_CompanyName)
这样做的目的是,在产品列表的右边,显示出相关公司的名称,但是一个公司添加了很多产品,所以要显示不相同的值。
请高手帮忙!
试了用count(distinct name)但不成功。
答案:外部连接和自联接
inner join(等值连接) 只返回两个表中联结字段相等的行
left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录
right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录
on 指定表间联结字段及其关系的等号 "=" 表达式, 返回 true 或 false. 当表达式返回 true 时, 则查询中包含该记录.
你可以将 inner join 替换成 right join
上一个:mssql中,如何返回指定第几到第几条之间的记录
下一个:速海网络的MSSQL数据库支持远程在线管理吗?