@invisii

Как сделать поиск в двух таблицах?

Есть 2 таблицы: wp_postmeta и wp_posts.

В первой таблице wp_postmeta выводим строки только где 'meta_key' содержит 'pdf_url':

SELECT * FROM `wp_postmeta` WHERE `post_id` BETWEEN 1 AND 5 AND `meta_key` LIKE 'pdf_url'

Как добавить проверку, чтобы в таблице wp_posts запись с этим 'post_id' в колонке 'post_status' была только 'publish'?
  • Вопрос задан
  • 86 просмотров
Решения вопроса 1
zavoloklom
@zavoloklom
Fullstack разработчик
Вы не показали структуру таблиц и что за БД, поэтому запрос может не пройти.

Но это будет примерно так:
SELECT * FROM `wp_postmeta` AS m
LEFT JOIN `wp_posts` AS p ON `p`.`ID` = `m`.`post_id`
WHERE `p`.`ID` BETWEEN 1 AND 5 AND `p`.`post_status` = 'publish' AND `m`.`meta_key` LIKE '%pdf_url%'


Ознакомьтесь пожалуйста с JOIN в целом и с тем как он работает в той БД, которую используете (например в MySQL, можно по туториалу).
Это одна из базовых операций, без ее понимания будет сложно что-то делать.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
LaRN
@LaRN
Senior Developer
В вашем примере, чтобы сработал поиск по шаблону внутри поля `meta_key` нужно так переписать:
`meta_key` LIKE '%pdf_url%'
Ответ написан
Комментировать
@shevchenko__k
Помогаю новорожденным web программистам
используйте HAVING https://oracleplsql.ru/having-mysql.html
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы