синтаксическая ошибка при объединении или объединении mysql

#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 WHERE post_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, поэтому я не могу сказать, как она организована