Несколько Meta_Key Выберите в базе данных Wordpress - PullRequest
0 голосов
/ 23 ноября 2018

Я разработал запрос, который выбирает события из Wordpress.Я использую предложение where, чтобы выбрать, где meta_value из meta_key eventstartdate после сегодняшнего дня.

Проблема, с которой я столкнулся сейчас, заключается в том, что мне также нужен фильтр на секунду meta_valueчто из meta_key '_VenueCity'.

Я пытался наложить псевдоним на таблицу wp_postmeta и делал где где на meta_key, но я думаю, что мне не хватает соединения.

Это код, который работает без моего дополнительного кода, чтобы заставить его работать.Кто-нибудь может посоветовать, как мне заставить это работать?

SELECT

`wp_posts`.`ID` AS `EventID`,
`wp_posts`.`post_parent` AS `SeriesID`,
`wp_posts`.`post_title` AS `EventTitle`,
`wp_posts`.`post_content` AS `EventDescription`,
`wp_posts`.`post_excerpt` AS `EventSummary`,
`wp_posts`.`post_name` AS `EventSlug`,
min(`wp_postmeta`.`meta_value`) AS `EventStartDate`,
max(`tribe_event_end_date`.`meta_value`) AS `EventEndDate`,
`wp_posts`.`guid` AS `GUID`

FROM ((`wp_posts` 
JOIN `wp_postmeta` ON
(
  (`wp_posts`.`ID` = `wp_postmeta`.`post_id`)
)) 

LEFT JOIN `wp_postmeta` `tribe_event_end_date` ON
(
  (
    (`wp_posts`.`ID` = `tribe_event_end_date`.`post_id`) AND
    (`tribe_event_end_date`.`meta_key` = '_EventEndDate')
  )
))


WHERE
(
  (`wp_postmeta`.`meta_key` = '_EventStartDate') AND
  (`wp_posts`.`post_type` = 'tribe_events') AND
  (`wp_posts`.`post_status` = 'publish') AND
  (`tribe_event_end_date`.`meta_value` >= CURDATE())  
) 

GROUP BY 
`wp_posts`.`ID` 
ORDER BY 
`EventStartDate`,
`wp_posts`.`post_date`; 

1 Ответ

0 голосов
/ 23 ноября 2018

Я не собираюсь писать ваш запрос для вас, но я приведу пример того, как получить несколько значений postmeta.Сила будет в предложении where, чтобы получить правильные значения.Вы должны также рассмотреть, какие объединения вы хотите использовать.

SELECT
p.post_title,
pm1.meta_value,
pm2.meta_value

FROM wp_posts as p

INNER JOIN wp_postmeta as pm1
ON p.ID = pm1.post_id

INNER JOIN wp_postmeta as pm2
ON p.ID = pm2.post_id

WHERE
pm1.meta_key = '_my_postmeta_field1'
AND
pm2.meta_key <> '_not_this_field'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...