Помогите поправить запрос
Есть таблица wp_posts, которая хранит в себе post_type и post_parent
| ID | post_type | post_parent |
|---|---|---|
| 1 | post | 0 |
| 2 | post | 0 |
| 3 | image | 1 |
Мне нужно сделать такой запрос, чтобы при запросе к post_type='post' я так же забирал все записи где post_parent = post.ID. Так же мне важно, чтобы каждый объект запроса содержал в себе что-то вроде ключа "attachments", где будут храниться дочерние записи. Вот что у меня получилось. Спасибо.
SELECT p.*,
JSON_ARRAYAGG(JSON_OBJECT(m.meta_key,m.meta_value)) AS meta
FROM wp_posts AS p
LEFT JOIN wp_postmeta m
ON (m.post_id = p.ID )
AND (m.meta_key='_aioseop_title' OR m.meta_key='_aioseop_description')
LEFT OUTER JOIN wp_posts p2
ON p2.post_parent = p.ID
WHERE post_type = 'post'
AND post_status = 'publish'
GROUP BY p.ID
LIMIT 10
Ошибка: Column 'post_type' in where clause is ambiguous
Ответы (1 шт):
После выборки у вас получается, что post_type есть как в p, так и в p2 (а может это поле есть и в wp_postmeta, не знаю) и парсер не знает, какой из них надо брать. Нужно явно указать, например p.post_type/p2.post_type/m.post_type и т.д.... Аналогично может быть с post_status
ЗЫ: ambiguous переводится как "двусмысленный". На будущее)