2014-01-02 5 views
0

Я новичок в MySQL и получил это заявление в стандартной базе данных Wordpress, чтобы получить последние статьи. Однако в приведенном ниже заявлении требуется, чтобы связанные строки были найдены в [wp_postmeta], чтобы получить миниатюру, принадлежащую этой статье. Однако некоторые сообщения могут не иметь миниатюр, но я все же хочу их выбрать.MySQL осталось присоединиться к базе данных Wordpress

Как изменить утверждение, чтобы не требовалось значение эскиза в [wp_postmeta]? Я считаю, что мне нужно предложение left join, но не знаю, как это сделать.

SELECT p.*, (SELECT guid FROM wp_posts WHERE id = m.meta_value) AS imgurl 
FROM wp_posts p, wp_postmeta m 
WHERE p.post_type = 'post' 
AND p.post_status = 'publish' 
AND p.id = m.post_id 
AND m.meta_key = '_thumbnail_id' 
ORDER BY post_date DESC 

ответ

1

Попробуйте это присоединиться и ON(p.id = m.post_id AND m.meta_key = '_thumbnail_id')

SELECT DISTINCT p.*, (SELECT guid FROM wp_posts WHERE id = m.meta_value LIMIT 1) AS imgurl 
FROM wp_posts p 
LEFT JOIN wp_postmeta m ON(p.id = m.post_id AND m.meta_key = '_thumbnail_id') 
WHERE p.post_type = 'post' 
AND p.post_status = 'publish' 
ORDER BY post_date DESC 
0

Используйте этот запрос он будет получать последние 5 пост, вы можете увеличить предел отображения.

$sql = " SELECT * FROM wp_posts p 
WHERE p.post_type = 'post' 
AND p.post_status = 'publish' 
AND p.post_type = 'post' 
ORDER BY p.post_date DESC 
LIMIT 5"; 
Смежные вопросы