我的SQL查詢出現問題。我試圖查詢數據庫從3個不同的表中獲取數據,其中應用了一個表條件。 在第二個條目中,它正確地顯示了結果,但是第一個條目沒有顯示應用條件的表的結果。SQL查詢(LEFT JOIN +條件)在第一次輸入時不顯示正確結果
這是我的查詢:
SELECT
`".PRODUCTS."`.*,
`".CATEGORIES."`.*,
`q_prices`.*
FROM
`".PRODUCTS."`
LEFT JOIN
`".CATEGORIES."`
ON
`".PRODUCTS."`.`category_id` = `".CATEGORIES."`.`category_id`
INNER JOIN(
SELECT
`".PRICES."`.*
MAX(`".PRICES."`.`price_modified`) modified
FROM
`".PRICES."`
GROUP BY
`".PRICES."`.`product_id`
) `q_prices`
ON
`".PRODUCTS."`.`product_id` = `q_prices`.`product_id`
這是它返回:
Array
(
[0] => stdClass Object
(
[product_id] => 1
[product_name] => Test product
[product_alias] => test-product
[category_id] => 1
[product_created] => 2013-07-29 11:36:51
[product_modified] => 2013-07-29 11:36:51
[category_name] => Test categorie
[category_alias] => test-categorie
[category_parent] => wonenplaza.nl
[category_created] => 2013-07-29 11:39:29
[category_modified] => 2013-07-29 11:39:29
[price_id] => 1
[price_amount] => 25.00
[price_tax] => 21
[price_created] => 2013-07-29 11:38:18
[price_modified] => 2013-07-29 11:38:18
[modified] => 2013-07-29 11:38:52
)
[1] => stdClass Object
(
[product_id] => 2
[product_name] => Priva Blue ID
[product_alias] => test-product2
[category_id] => 1
[product_created] => 2013-07-29 12:18:54
[product_modified] => 2013-07-29 12:18:54
[category_name] => Test categorie
[category_alias] => test-categorie
[category_parent] => wonenplaza.nl
[category_created] => 2013-07-29 11:39:29
[category_modified] => 2013-07-29 11:39:29
[price_id] => 4
[price_amount] => 20.00
[price_tax] => 21
[price_created] => 2013-07-29 12:19:11
[price_modified] => 2013-07-29 12:19:11
[modified] => 2013-07-29 13:30:05
)
)
我認爲這是與在LEFT JOIN查詢指定的限制,但我不確定。我不知道如何查詢數據庫來獲得這些結果。
在此先感謝(:。
我可以問你最後一次加入時想達到什麼嗎?找到每件商品的最新價格? –
是的,我想保留價格的歷史記錄,但在此查詢中,我試圖獲取該產品的最新價格。 – Yordi
沒有DESC限制這樣的事情。 DESC與ORDER BY有關。 –