SELECT
`wp_emu_theme_contact_page`.`firstName`
, `wp_emu_theme_contact_page`.`city`
, `wp_emu_theme_contact_page`.`state`
, `wp_posts`.`post_content`
, `wp_posts`.`post_date`
, `wp_posts`.`post_type`
, `wp_posts`.`ID`
, `wp_emu_theme_testimonials`.`permission`
, `wp_emu_theme_testimonials`.`userID`
, `wp_users`.`user_login`
, `wp_usermeta`.`meta_value`
FROM
`wp_emu_theme_testimonials`
INNER JOIN `wp_emu_theme_contact_page`
ON (`wp_emu_theme_testimonials`.`contactID` = `wp_emu_theme_contact_page`.`dbID`)
INNER JOIN `wp_posts`
ON (`wp_emu_theme_testimonials`.`postID` = `wp_posts`.`ID`)
LEFT JOIN `wp_users`
ON (`wp_emu_theme_testimonials`.`userID` = `wp_users`.`ID`)
INNER JOIN `wp_usermeta`
ON (`wp_usermeta`.`user_id` = `wp_users`.`ID`)
WHERE (`wp_posts`.`post_type` ='testimonial'
AND `wp_usermeta`.`meta_key` ='facebook_uid')
OR (`wp_usermeta`.`meta_key` = 'null');
問題は、テーブルwp_usermeta
に meta_key = 'facebook_uid' がない可能性があることです。その場合、私はそれらのエントリを取得していません。meta_key
そのために存在しない場合でも、他のすべてのものを取得したいuser_id
。もしそうなら、素晴らしいです。そのテーブルに関する部分を取り出すと、このクエリは期待どおりに機能します。ORなしで試しました。私はmysqlを使用しています。