【发布时间】:2018-05-18 12:45:02
【问题描述】:
WordPress 将帖子和帖子的特色图片视为两个单独的帖子,这似乎无法创建将帖子和帖子的图像 URL 放在同一行的 SELECT 查询,如下所示:
post_id imageURL
100 [URL]
如何合并 MySQL 表中没有具有共同值的列的两行?一列中的值与另一列中的值相关联。
meta_id post_id meta_key meta_value
100 250 _thumbnail_id 101
101 255 _wp_attached_file [URL]
...得到这样的结果
post_id imageURL
100 [URL]
自从这个问题在这个网站上得到回答后,WordPress 似乎已经改变了它的数据库结构。
当“Group by”不可用时,我试图了解 MySQL 从一行中获取值并将其显示在另一行中的原理。
在观看视频、反复试验、在此处阅读答案的数小时后,这个查询只让我解决了一半,但帖子 ID 或图片 URL 总是丢失。我无法合并两行以将帖子与其图片 URL 合并。
SELECT * FROM `wp_postmeta`
INNER JOIN wp_posts on wp_posts.id = wp_postmeta.post_id
WHERE wp_postmeta.meta_key = "_wp_attached_file"
ORDER BY `wp_postmeta`.`post_id` DESC
请帮忙。可能有一些简单的语法来实现这一点,我错过了。查询是通过 WP API 传入的,因此使用原始 SQL 查询,而不是 WordPress 中可用的函数。
【问题讨论】:
-
您只显示了
wp_postmeta表。wp_posts表是什么?您是否选择meta_id为post_id? -
好问题@aaron。 wp_posts 表确实包含与 WordPress 页面相关的所有图像,但据我所知,wp_posts 表无法识别帖子的特色图像(主图像)。它列出了所有相关的图像(它也认为是帖子),无论图像是否嵌入到正文中,或者它是否是主要的“特色”图像。我想你的第二个问题是你的手指。请参阅下面我对 raunak-gupta 的回复。
-
我没有看到你的回复。
标签: php mysql wordpress join posts