我想直接从数据库中获取一些产品数据,目前我有这个,但我缺少特色图片URL:
SELECT
p.ID,
p.post_title,
`post_content`,
`post_excerpt`,
t.name AS product_category,
t.term_id AS product_id,
t.slug AS product_slug,
tt.term_taxonomy_id AS tt_term_taxonomia,
tr.term_taxonomy_id AS tr_term_taxonomia,
MAX(CASE WHEN pm1.meta_key = \'_price\' then pm1.meta_value ELSE NULL END) as price,
MAX(CASE WHEN pm1.meta_key = \'_sku\' then pm1.meta_value ELSE NULL END) as sku
FROM wp_posts p
LEFT JOIN wp_postmeta pm1 ON pm1.post_id = p.ID
LEFT JOIN wp_term_relationships AS tr ON tr.object_id = p.ID
JOIN wp_term_taxonomy AS tt ON tt.taxonomy = \'product_cat\' AND tt.term_taxonomy_id = tr.term_taxonomy_id
JOIN wp_terms AS t ON t.term_id = tt.term_id
WHERE p.post_type in(\'product\', \'product_variation\') AND p.post_status = \'publish\' AND p.post_content <> \'\'
GROUP BY p.ID,p.post_title
最合适的回答,由SO网友:Ivan Shatsky 整理而成
我看到的唯一方法是使用嵌套WHERE
条款:
SELECT p.*, pm2.meta_value as image_file FROM (
SELECT
p.ID,
p.post_title,
`post_content`,
`post_excerpt`,
t.name AS product_category,
t.term_id AS product_id,
t.slug AS product_slug,
tt.term_taxonomy_id AS tt_term_taxonomia,
tr.term_taxonomy_id AS tr_term_taxonomia,
MAX(CASE WHEN pm1.meta_key = \'_price\' then pm1.meta_value ELSE NULL END) as price,
MAX(CASE WHEN pm1.meta_key = \'_sku\' then pm1.meta_value ELSE NULL END) as sku,
MAX(CASE WHEN pm1.meta_key = \'_thumbnail_id\' then pm1.meta_value ELSE NULL END) as thumbnail_id
FROM wp_posts p
LEFT JOIN wp_postmeta pm1 ON pm1.post_id = p.ID
LEFT JOIN wp_term_relationships AS tr ON tr.object_id = p.ID
JOIN wp_term_taxonomy AS tt ON tt.taxonomy = \'product_cat\' AND tt.term_taxonomy_id =
tr.term_taxonomy_id
JOIN wp_terms AS t ON t.term_id = tt.term_id
WHERE p.post_type in(\'product\', \'product_variation\') AND p.post_status = \'publish\' AND p.post_content <> \'\'
GROUP BY p.ID,p.post_title
) as p
JOIN wp_postmeta pm2 ON pm2.post_id = p.thumbnail_id
WHERE pm2.meta_key = \'_wp_attached_file\'