这样的表结构该如果查询

rufeng09 2009-03-26 11:23:01
商品信息表(Wares_info)
名称     类型    约束条件    说明
wares_id int   无重复   商品标识,主键
wares_name char(100) 不允许为空 商品名称

商品额外属性表(Wares_ex_property)
名称     类型    约束条件    说明
ex_pid int   无重复   商品额外属性标识,主键
p_name char(20) 不允许为空 额外属性名称

商品额外信息表(Wares_ex_info)
名称     类型     约束条件    说明
ex_iid int   无重复   商品额外信息标识,主键
wares_id int 不允许为空 所属商品标识,和Wares_info.wares_id关联
property_id  int 不允许为空           商品额外属性标识,和Wares_ex_property.ex_pid关联
property_value char(200) 不允许为空 商品额外属性值

在商品额外属性表(Wares_ex_property)中添加2条记录:
ex_pid p_name
1 商品图片
2 商品长度

如何一次查询出 商品ID 商品名称 商品图片 商品长度的 数据?
...全文
64 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
老哥讲数据库 2009-03-27
  • 打赏
  • 举报
回复
我写了一个:
SELECT a.Wares_id,a.Wares_name,tmp.property_value FROM Wares_info a 
INNER JOIN
(SELECT * FROM Wares_ex_property b INNER JOIN Wares_ex_property c ON b.ex_pid=c.property_id) AS tmp
ON a.Wares_id=tmp.Wares_id;
这一个查询只能把你的“商品ID,商品名称,商品图片”当做一条记录查出来,然后再把“商品ID,商品名称,商品长度”当做一条记录查出来,也就是一下子查出两条记录。
但是不能把他们合成一条记录查出来。
因为这是把列转行的处理了。
我不会那个处理。hehe。不好意思。
lxuan_025 2009-03-27
  • 打赏
  • 举报
回复
select a.wares_id 商品ID, a.wares_name 商品名称, c.p_name 额外属性名称
from Wares_info a , Wares_ex_property b , Wares_ex_info c
where a.wares_id = c.wares_id and c.property_id = b.ex_iid
  • 打赏
  • 举报
回复
select 商品id=ex_iid,商品名称 =Wares_info.wares_name,
商品图片=case when property_id=1 then property_value end,
商品长度=case when property_id=2 then property_value end
from Wares_info , Wares_ex_info
where Wares_info .wares_id = Wares_ex_info.wares_id
claro 2009-03-26
  • 打赏
  • 举报
回复
帮顶
dawugui 2009-03-26
  • 打赏
  • 举报
回复
select a.wares_id 商品ID, a.wares_name 商品名称, c.p_name 额外属性名称
from Wares_info a , Wares_ex_property b , Wares_ex_info c
where a.wares_id = c.wares_id and c.property_id = b.ex_iid

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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