我在一个网站上工作,那里有许多不同的服装系列。生产线是指具有相同设计、风格、制造商等的服装。在一条生产线中,服装有不同的尺寸和颜色。
要在一个特定的行中组合所有可用颜色的图表,下面的查询工作得很好(我在Coldfusion中工作,但是PHP将使用相同的查询)。
SELECT
skuColourwayID,cHex,cLongName,skuID, cwColID1
from garment_sku
join garment_colourways
on cwID=skuColourwayID
join garment_colour_name
on cID=cwColID1
where skuLineID=
group by skuColourwayID
为了积累我需要的所有信息,我必须使用连接访问三个表。(对于如何将数据呈现给我,我没有任何选择)。该行由lnID标识,在上述情况下,lnID以url变量开头。从sku表(garment_sku)开始,我访问colorways表(garment_colorways)并获取colorway颜色id(cwColID1)。通过将此应用于颜色名称表(garmentúu colourúu name),我可以得到颜色的实际名称及其十六进制值。
这一切都很好,只有几件衣服是双色的(衣袖和衣领等颜色不同)。服装库存表中有第二列cwColID2,表示第二种颜色。
解决这个问题的一种方法是执行两个单独的查询,在第二个查询中,cwColID1被cwColID2替换。然后,我可以结合查询编程,以实现双色在需要的地方。但是,这看起来很不优雅,我敢肯定MySQL在一个查询中就可以处理这个问题了?
我不想说,但表中也有第三种颜色cwColID3的规定,尽管我从来没有遇到过任何三种颜色的服装,我很高兴只为这两种颜色解决这个问题。
谢谢你的帮助。