ASPページに最新の投稿の抜粋、投稿のタイトル、注目の画像を表示しようとしています。クエリを簡略化するために、各投稿のカスタムフィールドとしてパーマリンクを追加します。注目の画像を除くすべてを取得するクエリがあり、注目の画像を取得する別のクエリがありますが、それらを1つのクエリにマージする方法がわかりません。
//投稿の抜粋と投稿のタイトルを取得します
SELECT
wp_posts.id,
wp_posts.post_title,
wp_postmeta.meta_value,
wp_postmeta.meta_key,
wp_posts.post_excerpt
FROM
wp_postmeta
INNER JOIN wp_posts p ON (wp_postmeta.post_id = wp_posts.ID)
WHERE post_id IN (
SELECT wp_posts.id
FROM wp_posts
WHERE post_type = 'post'
AND post_status = 'publish'
AND meta_key = 'my_permalink'
ORDER BY post_date, wp_posts.id
)
ORDER BY wp_posts.post_date DESC, wp_postmeta.post_id
LIMIT 2
//投稿の注目画像を取得します
SELECT p.*
FROM wp_postmeta AS pm
INNER JOIN wp_posts AS p ON pm.meta_value=p.ID
WHERE pm.post_id = $ID
AND pm.meta_key = '_thumbnail_id'
ORDER BY p.post_date DESC
誰かがこれらのクエリをマージするのを手伝ってもらえますか?ありがとう。
返されるサンプルデータ:ID | post_title | post_excerpt | meta_value_my_permalink | features_image_guid
**更新* サブクエリで「IN」を使用しようとするとエラーが発生するため、1行以上取得できないことを除いて、正常に機能する次のものを取得できました。たとえば、pm2.post_id IN(SELECTwp_posts)。 id FROM wp_posts WHERE post_type ='post' AND post_status ='publish' ORDER BY post_date DESC LIMIT 2)
SELECT
p.post_title,
p.post_excerpt,
pm.meta_value AS permalink,
p2.guid as thumbnail,
p2.post_title as image_alt
FROM
wp_postmeta pm
INNER JOIN wp_posts p ON (pm.post_id = p.ID),
wp_postmeta pm2
INNER JOIN wp_posts p2 ON (pm2.meta_value = p2.ID)
WHERE
pm.post_id = (SELECT wp_posts.id FROM wp_posts WHERE post_type = 'post' AND post_status = 'publish' ORDER BY post_date DESC LIMIT 1) AND
pm.meta_key = 'my_permalink' AND
pm2.post_id = (SELECT wp_posts.id FROM wp_posts WHERE post_type = 'post' AND post_status = 'publish' ORDER BY post_date DESC LIMIT 1) AND
pm2.meta_key = '_thumbnail_id'