欢迎来到Doc100.Net免费学习资源知识分享平台!
您的位置:首页 > 程序异常 >

具有可变数目的attribute的item集合,怎么检索含有指定几个attribute的item

更新时间: 2014-01-05 02:26:16 责任编辑: Author_N1

 

具有可变数目的Attribute的Item集合,如何检索含有指定几个Attribute的Item
具有可变数目的Attribute的Item集合,如何检索含有指定几个Attribute的Item

假如有若干产品
电视机 尺寸28,重量20,价格1000
冰箱 长40,宽80,高150,颜色Red
洗衣机 容积50

我将数据库设计成如下结构
SQL code
CREATE TABLE tblItem(lngId COUNTER PK, strName TEXT(10) UNIQUE)
CREATE TABLE tblAttribute(lngId COUNTER PK,strName TEXT(10) UNIQUE)
CREATE TABLE tblItemAttribute(lngIid INTEGER , lngAid Integer)


如何检索出拥有“长”和“重量”的物品??(最好用J-Sql)

============
附,我错误的写法:
SQL code
SELECT tblItem.strName FROM 
((tblItem LEFT JOIN tblItemAttribute ON tblItem.lngId=tblItemAttribute.lngIid)
LEFT JOIN tblAttribute ON tblItermAttribute.lngAid=tblAttribute.lngId)

WHERE tblItermAttribute.strName IN ('长','重量')
结果是检索出拥有“长”或“重量”的物品,而不是有“长”和“重量”的物品
若改成WHERE tblItermAttribute.strName='长' AND tblItermAttribute.strName='重量' ,则返回空

--参考方法--
SQL code
select c.*
from ((tblItemAttribute a1 inner join tblAttribute b1 on a1.lngAid=b1.lngId and b1.strName='长')
    inner join (tblItemAttribute a2 inner join tblAttribute b2 on a2.lngAid=b2.lngId and b2.strName='重量')
    on a1.lngIid=a2.lngIid)
    inner join tblItem c on a1.lngIid= c.lngId 			
			
		
上一篇:上一篇
下一篇:下一篇

 

随机推荐程序问答结果

 

 

如对文章有任何疑问请提交到问题反馈,或者您对内容不满意,请您反馈给我们DOC100.NET论坛发贴求解。
DOC100.NET资源网,机器学习分类整理更新日期::2014-01-05 02:26:16
如需转载,请注明文章出处和来源网址:http://www.doc100.net/bugs/t/9835/
本文WWW.DOC100.NET DOC100.NET版权所有。