0
我必須對sql查詢進行一些編輯,因爲我需要包含一些額外的數據,起初我認爲這是所有排序,直到今天有人下了訂單和新查詢只返回一種產品,而不是5種產品。這是由於一些產品沒有屬性。加入的查詢的問題取決於客戶的訂單
新的查詢如下:
SELECT op.orders_id, op.products_id, op.products_model, op. products_name,
op.final_price, op.products_quantity, opa.products_options_values_id,
opa.products_prid
FROM orders_products op
JOIN orders_products_attributes opa ON op.orders_products_id = opa.orders_products_id
WHERE op.orders_id = 21679
我已經建立了與此相關的數據庫信息的SQL小提琴; http://www.sqlfiddle.com/#!2/105ec
原始查詢不會返回5個reults預期是:
SELECT op.orders_id, op.products_id, op.products_model, op. products_name,
op.final_price, op.products_quantity
FROM orders_products op
WHERE op.orders_id = 21679
原來的問題完全與sqlfiddle證明是必需的特定順序可以在這裏找到的數據; Joining two working sql queries gets wrong results - Where am i going wrong
對此查詢所做的任何更改仍必須返回前一個提琴中使用的順序21535的正確結果。
它看起來像是由於使用了引用orders_products_id的JOIN,但如果不需要屬性,產品將不在一個表中。
我不能使用orders_id作爲連接,因爲這給了我錯誤的結果,根據以前的問題。
任何建議,因爲我現在完全卡住了。
感謝
完美。謝謝。你能解釋爲什麼LEFT JOIN給JOIN一個不同的結果。始終願意學習如何和爲什麼。 –
因爲您的原始查詢過濾掉了沒有屬性的產品。一個「左連接」保留它們。 –