我必须两次加入wp\u posts和wp\u postsmeta才能得到行。首先是 post_type=product
接下来是 post_type=attachment
.
wp\u职位:
╔════╦════════════╦═════════════════════════════════════════════════════╗
║ ID ║ post_type ║ guid ║
╠════╬════════════╬═════════════════════════════════════════════════════╣
║ 48 ║ product ║ http://example.com/xyz ║
╚════╩════════════╩═════════════════════════════════════════════════════╝
可湿性粉剂postsmeta
╔═════════╦═════════╦═══════════════╦═══════════╗
║ meta_id ║ post_id ║ meta_key ║ meta_value║
╠═════════╬═════════╬═══════════════╬═══════════╣
║ 200 ║ 48 ║ _price ║ 100 ║
╚═════════╩═════════╩═══════════════╩═══════════╝
查询:
接下来,我也想加入 wp_posts
与 wp_postsmeta
再次与 post_type = attachment
以及 meta_key =_thumbnail
```
╔════╦════════════╦═════════════════════════════════════════════════════╗
║ ID ║ post_type ║ guid ║
╠════╬════════════╬═════════════════════════════════════════════════════╣
║ 150║ attachment ║ http://example.com/xyz.png ║
╚════╩════════════╩═════════════════════════════════════════════════════╝
可湿性粉剂postsmeta:
╔═════════╦═════════╦═══════════════╦═══════════╗
║ meta_id ║ post_id ║ meta_key ║ meta_value║
╠═════════╬═════════╬═══════════════╬═══════════╣
║ 200 ║ 48 ║ _thumbnail ║ 150 ║
╚═════════╩═════════╩═══════════════╩═══════════╝
然后我使用结果的meta_值,并将其与wp_posts(主键wp_posts.id=wp_postsmeta.meta_值)再次连接起来,以便从中获得产品的特征图像。
下面是我的完整查询
SELECT p1.ID, p1.guid, p3.guid
FROM wp_posts p1
JOIN wp_postmeta p2
ON p1.ID = p2.post_id AND
p2.meta_key = '_price' AND
p1.post_type = 'product' AND
p1.post_status = 'publish'
JOIN wp_posts p3
ON p3.ID = p2.post_id AND
p2.meta_key = '_thumbnail_id'
JOIN wp_postmeta p4
ON p4.post_id = p3.ID AND
p3.post_type = 'attachment';
上面的查询返回空结果(它不应该是空的,但返回如下表)
╔════╦════════════╦═════════════════════════╦════════════════════════════╗
║ ID ║ post_type ║ guid ║ guid ║
╠════╬════════════╬═════════════════════════╬════════════════════════════╣
║ 48 ║ product ║ http://example.com/xyz ║ http://example.com/xyz.png ║
╚════╩════════════╩═════════════════════════╩════════════════════════════╝
1条答案
按热度按时间hc8w905p1#
尝试此查询
更新
你想要这样吗?