SQL-запрос для компиляции метаданных Post - PullRequest
1 голос
/ 22 июля 2011

Я работаю над WordPress и мне нужно генерировать своевременные csv-файлы для клиента, это должно включать основную информацию о записи из wp_posts, такую ​​как title, time & author. В дополнение к этому я использую настраиваемые поля для хранения post_count, имени автора, author_email и еще нескольких мета-полей.

Структура wp_postmeta id, meta_key, meta_value

Структура wp_posts идентификатор, название, дата

wp_posts & wp_postmeta имеет отношение 1: N.

Если я сделаю простое внутреннее соединение с утверждением

SELECT * FROM wp_posts INNER JOIN wp_postmeta where wp_postmeta.post_id = wp_posts.id

затем я получаю строку для каждого мета-значения, но я хочу, чтобы каждое мета-значение стало столбцом и только одна строка на пост.

Как написать этот запрос?

Пожалуйста, примите это как стандартную базу данных WordPress.

Ответы [ 2 ]

1 голос
/ 22 июля 2011

Используйте GROUP_CONCAT, если вы используете MySQL:

SELECT wp_posts.*, GROUP_CONCAT(meta_value SEPARATOR ', ')
FROM wp_posts INNER JOIN wp_postmeta USING post_id
GROUP BY wp_posts.post_id;
0 голосов
/ 28 ноября 2018

Старый вопрос, но он всплыл в моем поиске. Я использовал GROUP_CONCAT с парами ключ / значение, как в:

GROUP_CONCAT(pm.meta_key, '=', pm.meta_value ORDER BY pm.meta_key DESC SEPARATOR ',') as meta
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...