日期:2014-05-17  浏览次数:20420 次

关于MSSql表结构创建逻辑和查询关联[大神们都来看看吧]
我是穷人,没有分供上,但希望大家也帮忙看看..

先给大家介绍一下情况

产品表
产品颜色表
产品图片表


产品表一个颜色字段,值格式是“1,2,3,4,5”,值是产品颜色表的ID(因为一个产品,可以勾选一个或多个颜色);产品图片表是关联产品ID和产品系列颜色表ID;

也就是一个产品对应多个颜色,一个颜色对应多个图片;但那个颜色是要重复使用;

现在在查询产品的时候,用了两个For循环才出的了结果数据;大神们肯定也觉得太不理想了;
这情况需要用怎么样的查询结构,或者表结构要怎么修改;
mssql 表结构 sql语句

------解决方案--------------------
再加一个颜色表,把原有的产品图片:ProductIMG  缩略字段:ID,ProID,ColorID,Url拆开,
ProductIMG   ID,PROID,COLORID
IMG Colorid,Url
select a.ID,a.Name,b.ProID,d.ColorID,d.Url from Product a 
left join ProductColor b on b.ProID=a.ID
left join ProductIMG c on c.ProID=a.ID and c.ColorID=b.ColorID
left join IMG D ON C.COLORID=D.COLORID

但是如果你一个产品有5个颜色,假设每个颜色有4个图片,那一个产品有5*4=20条数据是正确的,问题就是你到时候如何展示而已