Выбор содержимого публикации из одной таблицы на основе идентификатора строки в другой

#javascript #mysql #node.js

#javascript #mysql #node.js

Вопрос:

У меня есть многоузловая настройка WordPress, для которой я пытаюсь запустить скрипт узла, где он перебирает базу данных и выбирает все строки, которые содержат строку в post_content столбце wp_{site-id}_post таблицы, и извлекает идентификатор сайта из wp_blogs таблицы на основе идентификатора wp_{site-id}_post таблицы.

Итак, таблицы разбиваются следующим образом:

wp_blogs:

 blog_id | site_id | domain       | path  | ...

 85     |       1 | mydomain.com | /site | ...
  

wp_85_posts:

 ID | post_author | post_date | post_date_gmt | post_content         | post_title | ...

1  |           1 | ...       | ...           | this is post content | I'm a post |
  

Как я могу получить домен из, wp_blogs where post_content соответствует предложению LIKE, чтобы он знал, что post_content находится в wp_85_posts , и знал, что домен находится в wp_blogs на основе blog_id ?

Мой текущий запрос:

SELECT path, blog_id, post_content FROM wp_blogs, wp_78_posts WHERE post_content LIKE '%content-to-search%'

но хотелось бы иметь возможность запускать запрос без необходимости указывать таблицы post каждого сайта (например, wp_78_posts).

Есть ли предложение, которое я могу использовать, чтобы избежать необходимости делать это?

Комментарии:

1. Нет. Там его нет.

2. Как говорит @Strawberry, это невозможно в SQL. Невозможно динамически указывать имена базы данных, таблицы или столбца.

3. Вместо того, чтобы иметь отдельную таблицу для каждого сайта, у вас должна быть одна wp_posts таблица со site_id столбцом. Затем вы можете присоединиться ON wp_blogs.site_id = wp_posts.site_id .