Я создаю таблицу в WpDataTables, которая включает два пользовательских типа записей: «Кандидаты» и «Отзывы». Я пытаюсь создать таблицу, в которой показаны все кандидаты, которые были просмотрены текущим пользователем (рецензентом), просматривающим таблицу WpDataTable. У каждого кандидата может быть один или несколько обзоров.
Этот запрос выполняется точно так же, как я хочу в MySQL, однако WpDataTables почему-то не нравится. Я полагаю, что это из-за подзапроса.
SELECT a.ID, r.post_title, a.post_title, a.guid, r.post_type, a.post_type, r.post_author,
b.meta_value review_app_score,
c.meta_value review_app_comment
FROM (SELECT * FROM `wppm_2_posts` WHERE post_author = 1 AND post_type = 'reviews' AND post_status = 'publish') as r
RIGHT JOIN `wppm_2_posts`as a ON r.post_title = a.ID
LEFT JOIN `wppm_2_postmeta` b ON r.ID = b.post_id AND b.meta_key='review_app_score'
LEFT JOIN `wppm_2_postmeta` c ON r.ID = c.post_id AND c.meta_key='review_app_comment'
WHERE a.post_type = 'applicants'
AND a.post_status = 'publish'
Вот каковы результаты MySQL: https://i.stack.imgur.com/KzvHt.png
Это именно то, что мне нужно, за исключением того, что мне нужно, чтобы он работал в WpDataTables.
Причина в том, что я хочу воспользоваться их динамическим c заполнителем (% CURRENT_USER_ID%) вместо '1' в подзапросе выше для post_author. Например:
(SELECT * FROM `wppm_2_posts` WHERE post_author = %CURRENT_USER_ID% AND post_type = 'reviews' AND post_status = 'publish')
Есть ли другой способ написать это без использования подзапроса? Или есть другой способ создать это без использования динамического c заполнителя, такого как PHP?
Любая помощь приветствуется.