編輯:現在由於某種原因,每個productid只顯示一次而不是取決於它有多少變化?有任何想法嗎? (我使用的查詢是我列出的最後一個查詢)添加第四個表格加入時結果減少
這裏是我的三個表連接查詢
SELECT xp.productid, xp.product, xc.classid, xco.optionid, xco.option_name
FROM xcart_products xp
JOIN xcart_classes xc ON xp.productid = xc.productid and xc.class = 'Color'
JOIN xcart_class_options xco ON xc.classid = xco.classid
ORDER by xp.product DESC
現在這裏一切都很正常,我得到約2,000結果,一切組織和排列正確。
現在我想添加第四個表來計算每個xi.id的xi.optionid數量,但由於某種原因,我只能獲得大約200個結果,並且無法找出原因。這裏是我試圖運行
SELECT xp.productid, xp.product, xc.classid, xco.optionid, xco.option_name, count(xi.optionid) as cnt
FROM xcart_products xp
INNER JOIN xcart_classes xc ON xp.productid = xc.productid AND xc.class = 'Color'
INNER JOIN xcart_class_options xco ON xc.classid = xco.classid
INNER JOIN xcart_images_D xi ON xi.optionid = xco.optionid
GROUP BY xp.product
ORDER by xp.product DESC
這裏查詢的每個表的基本架構
xcart_products -
+ productid*
+ product
xcart_classes -
+ classid*
+ productid (xcart_products.productid)
xcart_class_options -
+ optionid*
+ classid (xcart_classes.classid)
+ option_name
xcart_images_D -
+ imageid*
+ optionid (xcart_class_options.optionid)
+ id (xcart_products.productid)
查詢我目前使用 -
SELECT xp.productid, xp.product, xc.classid, xco.optionid, xco.option_name, count(xi.optionid) as cnt
FROM xcart_products xp
JOIN xcart_classes xc ON xp.productid = xc.productid AND xc.class = 'Color'
JOIN xcart_class_options xco ON xc.classid = xco.classid
LEFT JOIN xcart_images_D xi ON xi.optionid = xco.optionid
GROUP BY xp.product
ORDER by xp.product DESC
第一個查詢中圖像表 – 2012-04-05 16:35:54
中的記錄數是多少,您沒有GROUP BY語句。而且,您正在使用不同種類的JOIN。 – 2012-04-05 16:38:35