我的情況下,我需要的以下信息:MySQL查詢 - 顯示了一個產品的第二分類攔住了我
- ID(posts.ID)
- TITLE(posts.title)
- SKU(postmeta.metakey = '_sku') - >存儲在(postmeta.metavalue)
- PRICE(postmeta.metakey = 'REGULAR_PRICE')值 - >存儲在(postmeta.metavalue)
- 品牌價值(terms.name WHERE term_taxonomy_term.taxonomy ='產品_cat ')
- CATEGORY(terms.name WHERE term_taxonomy_term.taxonomy =' 品牌「)
SKU
和PRICE
屬於同一列 」postemeta.metakey「,其相關的值是在 」postemeta.metavalue「 。
BRAND
和CATEGORY
屬於同一列「terms.name」,但它們在「term_taxonomy.taxonomy」中定義了不同的分類法並且是('product_brand'和'product_cat')。
開發下面的查詢我能夠收集除BRAND
(terms.name)之外的所有信息。
SELECT p.ID
, MAX(CASE WHEN pm1.meta_key = '_sku'
THEN pm1.meta_value
ELSE NULL END) AS sku
, p.post_title
, t.name AS product_category
, MAX(CASE WHEN pm1.meta_key = '_price'
THEN pm1.meta_value
ELSE NULL END) AS price
FROM mg_posts p
LEFT JOIN mg_postmeta AS pm1
ON pm1.post_id = p.ID
LEFT JOIN mg_term_relationships AS tr
ON tr.object_id = p.ID
JOIN mg_term_taxonomy AS tt
ON tt.taxonomy = 'product_cat' AND tt.term_taxonomy_id = tr.term_taxonomy_id
JOIN mg_terms AS t
ON t.term_id = tt.term_id
WHERE p.post_type IN ('product', 'product_variation')
GROUP BY p.ID, p.post_title
任何幫助解決這個問題?
您與品牌有什麼問題?請[mcve]。 '屬於同一列「postemeta.metakey」,其中相關的值在「postemeta.metavalue」 '不明確。同上你的描述5和6(雖然我可以弄清楚代碼中的內容,請這樣做,然後用它來代替)PS不應該說「='product_brand'」&6說「=」 'product_cat'「?和「mg_taxonomy_term」? – philipxy
https://stackoverflow.com/q/45250646/3404097可能存在重複。 (雖然你正在使用不同的聚合。)(請參閱我的答案。) – philipxy