Помогите поправить запрос
Есть таблица 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 переводится как "двусмысленный". На будущее)