【发布时间】:2015-04-27 22:33:18
【问题描述】:
我正在使用 wordpress / woocommerce 数据库结构,并希望进行自定义查询。
基本上我需要获取所有没有特定变化的产品,但我在加入 ID 时遇到了麻烦。
product 和 product_variation 都是 posts 以及关联的 postmeta。
示例架构:
wp_posts wp_postmeta
ID post_id
post_parent meta_key
post_type meta_value
post_status
wp_posts 表的示例如下所示:
id name post_parent meta_key meta_value
2 tshirt null
3 pants null
4 2 variation_type red
5 2 variation_type blue
这里你可以看到 4 个帖子; 2 种产品和 2 种变体。变体的 post_parent 指向产品。所以我有一件红色和蓝色的T恤
我需要的是获取所有带有蓝色变体的产品,这意味着我需要将 post_parent 加入到 id。
这是我目前所拥有的。
SELECT * FROM wp_posts wp1
INNER JOIN wp_postmeta pm1
ON (pm1.post_id = wp1.ID)
INNER JOIN wp_postmeta pm2
ON (pm2.post_id = wp1.ID)
JOIN wp_posts wp2
ON (wp2.post_parent = wp1.ID)
AND wp1.post_type = 'product_variation'
AND wp1.post_status = 'publish'
AND pm1.meta_key = 'groups-groups_read_post'
AND pm1.meta_value = 'vet_read'
AND pm2.meta_key = 'variation_type'
AND pm2.meta_value = 'blue'
我相信我做错了连接。任何指导表示赞赏。
【问题讨论】:
-
你能改变你的结构吗?
标签: mysql database woocommerce inner-join