#mysql #sql
#mysql #sql
Вопрос:
Я хочу повторно получить результат mysql, но мой запрос не сработал, потому что я новичок в компьютерном программировании или компьютерной базе данных.
SELECT guid, post_name
FROM `wp_posts`
WHERE `post_parent` = 0 and `post_type` = 'post' and post_title != 'Auto Draft'
ВОЗВРАТ:
guid post_name
http://localhost/?p=21 post-2-title
http://localhost/?p=12 post-4-title
И
SELECT guid as children_url, post_parent as post_parent
FROM `wp_posts`
WHERE `post_parent` != 0 and `post_type` = 'attachment' and post_title != 'Auto Draft'
ВОЗВРАТ:
children_url post_parent
http://localhost/attachment-post-1 12
http://localhost/attachment-post-2 12
http://localhost/attachment-post-3 12
http://localhost/attachment-post-4 12
http://localhost/attachment-post-5 12
http://localhost/attachment-post-6 12
http://localhost/attachment-post-7 12
http://localhost/attachment-post-8 12
http://localhost/attachment-post-9 21
http://localhost/attachment-post-10 21
http://localhost/attachment-post-11 21
http://localhost/attachment-post-12 21
http://localhost/attachment-post-13 21
http://localhost/attachment-post-14 21
http://localhost/attachment-post-15 21
http://localhost/attachment-post-16 21
Я попробовал несколько запросов, но безуспешно,
SELECT guid as children_url, post_parent as post_parent
FROM `wp_posts`
WHERE `post_parent` != 0 and `post_type` = 'attachment' and post_title != 'Auto Draft'
and SELECT guid, post_name FROM `wp_posts`
WHERE `post_parent` = 0 and `post_type` = 'post' and post_title != 'Auto Draft'
Вызывает ошибку:
1064 — У вас ошибка в синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с ‘ВЫБЕРИТЕ guid, post_name ИЗ
wp_posts
WHEREpost_parent
= 0 иpost_type
=’ в строке 1
Что я хочу, чтобы результат выглядел :
children_url post_parent post_paraent_guid post_parent_title
http://localhost/attachment-post-1 12 http://localhost/?p=12 post-2-title
http://localhost/attachment-post-2 12 http://localhost/?p=12 post-2-title
http://localhost/attachment-post-3 12 http://localhost/?p=12 post-2-title
http://localhost/attachment-post-4 12 http://localhost/?p=12 post-2-title
http://localhost/attachment-post-5 12 http://localhost/?p=12 post-2-title
http://localhost/attachment-post-6 12 http://localhost/?p=12 post-2-title
http://localhost/attachment-post-7 12 http://localhost/?p=12 post-2-title
http://localhost/attachment-post-8 12 http://localhost/?p=12 post-2-title
http://localhost/attachment-post-9 21 http://localhost/?p=21 post-4-title
http://localhost/attachment-post-10 21 http://localhost/?p=21 post-4-title
http://localhost/attachment-post-11 21 http://localhost/?p=21 post-4-title
http://localhost/attachment-post-12 21 http://localhost/?p=21 post-4-title
http://localhost/attachment-post-13 21 http://localhost/?p=21 post-4-title
http://localhost/attachment-post-14 21 http://localhost/?p=21 post-4-title
http://localhost/attachment-post-15 21 http://localhost/?p=21 post-4-title
http://localhost/attachment-post-16 21 http://localhost/?p=21 post-4-title
Буду признателен за любую помощь.
Спасибо
Комментарии:
1. Вам нужны четыре столбца, а запрашивается только два столбца. Или я просто неправильно понял ваш вопрос?
2. вы правы, я прошу прощения из-за моих ограниченных знаний о запросе к базе данных
Ответ №1:
Попробуйте это
SELECT
pc.guid as children_url,
pc.post_parent as post_parent,
pp.guid as post_paraent_guid,
pp.post_title as post_parent_title
FROM
wp_posts pc
left join wp_posts pp on pp.ID=pc.post_parent
WHERE
pc.post_type = 'attachment'
and pc.post_title != 'Auto Draft'
ORDER BY
pc.guid
Комментарии:
1. в любом случае, также как ограничить извлечение только из CategoryID 2?
2. добавить условие where
WHERE pc.post_type = 'attachment' and pc.post_title != 'Auto Draft' and categoryId=2
3. Прошу прощения, но неизвестный столбец ‘CategoryID’ в ‘where clause’, я использую базу данных WordPress
4. У меня нет базы данных WordPress, поэтому я не могу сказать, как она организована