MySQL PDOで複数テーブル(tableA,tableB) where (tableB.metaID=tableA.id)
コードの通り、テーブル名wp_posts
のカラム名post_id
に一致するテーブル名wp_postmeta
のカラム名post_id
を一回のSQL文で取得したいです。下記の場合では取得できませんでした。
$str1 = 'post';
$str2 = 'publish';
$result = $wpdb->get_results($wpdb->prepare("
SELECT * FROM wp_posts,wp_postmeta
WHERE wp_posts.post_type = %s
AND wp_posts.post_status = %s
AND wp_postmeta.post_id = wp_posts.post_id
ORDER BY post_date DESC
LIMIT 25
", $str1, $str2));
データベース中身はこうなっています。
wp_posts
post_id 1001 PRIMARY
post_title LION
post_id 1002 PRIMARY
post_title TIGER
wp_postmeta
meta_id 8501 PRIMARY
post_id 1001
key LEO
val RAION
meta_id 8502 PRIMARY
post_id 1001
key NEKO
val TANAKA