我試圖從一個查詢中獲取數據庫中的所有產品。我被卡在價格部分:從數據庫中獲取產品
VirtueMart有一個名爲#__vm_product的表,另一個名爲#__vm_product_price。
如果產品具有父級產品,則表示產品會繼承父級產品的所有內容,除非它在子級中設置不同。
的表是這樣的:
/* #__vm_product PARTIAL */
int - product_id
int - product_parent_id
varchar - product_name
/* #__vm_product_price PARTIAL */
int - product_id
decimal - product_price
int - mdate
我做這得到所有產品的價格在下一個查詢:
SELECT
p.product_id AS id,
product_name AS name,
product_price AS price,
p.product_parent_id AS parent,
MAX(pp.mdate) AS last_updated
FROM jos_vm_product p
LEFT JOIN jos_vm_product_price pp ON p.product_id = pp.product_id
GROUP BY p.product_id
ORDER BY p.product_id
與此查詢的問題是,它並不檢查他們是一個指定的價格。因此,如果它是一種兒童產品並且沒有價格,它應該顯示它的父母的價格。
有人可以幫我解決這個問題嗎?
注:如果有人知道一個簡單的方法來從VirtueMart數據庫中獲取所有產品(價格),請不要介意告訴我:)
編輯:價格永遠不能爲null。如果孩子應該從其父母繼承,它只是沒有在jos_vm_product_price中的價格行
我不知道如何解決此查詢。它也不使用jos_vm_product_price,這讓我很難找出哪一個應該是價格表。 – MrSoundless 2010-08-05 14:43:59
對不起,它只返回兒童產品。也請閱讀主帖中的編輯說明,因爲我在解釋中犯了一個「小」錯誤。 – MrSoundless 2010-08-05 15:12:50
查看我的更新。我從你之前的文章中推斷出你想要的所有產品都有父母。 – RedFilter 2010-08-05 15:17:49