1
我陷入查詢中。這是我目前的查詢。mysql多次連接並從兩個內部連接表中檢索到只有一條記錄
SELECT products.product_id, products.product_title,
package_category_products.PCP_id,
product_images.PI_file_name
FROM package_category_products
LEFT JOIN products ON products.product_id = package_category_products.PCP_product_id
-- BEGIN MARKED CODE
LEFT JOIN product_inventories on product_inventories.PI_product_id = products.product_id
INNER JOIN product_images on product_images.PI_product_id = product_inventories.PI_product_id
AND product_images.PI_color = product_inventories.PI_color_id
-- END MARKED CODE
WHERE PCP_package_id = 17
AND PCP_package_category_id = 3
AND product_status ='active'
該查詢返回當前的冗餘數據。我想在標記的代碼中使用子查詢,以便在加入後僅從這兩個表中返回一條記錄。所以我會避免重複的數據,並注意每個產品只需要一條記錄。
你可以使用'GROUP BY products.product_id' – Ejaz
三種情況之一,使用'distinct'因爲你沒有返回所有列其中唯一標識每個表的記錄。由於相同的原因,爲每個返回的列使用'group by'。或者你的一個聯接缺少一個導致意想不到的carteasean的聯接標準。表結構和示例數據顯示了每個表的問題......存在這三種可能性中的任何一種。我個人對於我來說似乎更清潔一些,因爲我必須對我的分組進行有意識的努力,這可能導致我發現一個不好的加入...... – xQbert