#1054 - Unknown column 'X' in 'on clause' - MySQL

Узнай цену своей работы

Формулировка задачи:

Объясните пожалуйста, как правильно сделать последний джоин?
Листинг программы
  1. SELECT
  2. posts.id,
  3. posts.post_name AS link,
  4. posts.post_title AS title,
  5. m1.meta_value AS logo_id,
  6. m2.meta_value AS cashback,
  7. posts1.guid AS logo
  8. FROM $wpdb->posts AS posts
  9. JOIN $wpdb->postmeta AS m1 ON posts.id=m1.post_id AND m1.meta_key = 'merchant_logo'
  10. LEFT JOIN $wpdb->postmeta AS m2 ON posts.id=m2.post_id AND m2.meta_key = 'merchant_cashback'
  11. LEFT JOIN $wpdb->posts AS posts1 ON posts1.id=logo_id
  12. WHERE `post_type`='merchants'
#1054 - Unknown column 'logo_id' in 'on clause'

Решение задачи: «#1054 - Unknown column 'X' in 'on clause'»

textual
Листинг программы
  1. SELECT
  2.     posts.id,
  3.     posts.post_name AS link,
  4.     posts.post_title AS title,
  5.     m1.meta_value AS logo_id,
  6.     m2.meta_value AS cashback,
  7.     posts1.guid AS logo            
  8. FROM $wpdb->posts AS posts
  9. JOIN $wpdb->postmeta AS m1 ON posts.id=m1.post_id AND m1.meta_key = 'merchant_logo'
  10. LEFT JOIN $wpdb->postmeta AS m2 ON posts.id=m2.post_id AND m2.meta_key = 'merchant_cashback'
  11. LEFT JOIN $wpdb->posts AS posts1 ON posts1.id=m1.meta_value

Объяснение кода листинга программы

  1. Создание запроса на выборку данных из нескольких таблиц
  2. Указание таблицы, с которой начинается объединение (ON clause)
  3. Объединение таблиц по полю post_id и meta_key
  4. Использование LEFT JOIN для объединения по нескольким полям
  5. Указание полей, которые будут выведены в результате запроса
  6. Использование псевдонима (после ключевого слова AS) для удобства работы с данными
  7. Предполагается, что в таблице $wpdb->posts есть поля id, post_name, post_title, guid
  8. Предполагается, что в таблице $wpdb->postmeta есть поля post_id, meta_key, meta_value
  9. Предполагается, что поле meta_value в таблице $wpdb->postmeta содержит уникальные значения id постов
  10. Предполагается, что поле meta_value в таблице $wpdb->posts содержит id постов
  11. В запросе используются псевдонимы m1, m2, posts1 для удобства работы с данными
  12. В запросе используется ключевое слово ON для указания условий объединения таблиц
  13. В запросе используется ключевое слово LEFT JOIN для объединения по нескольким полям
  14. В запросе используются псевдонимы для удобства работы с данными
  15. В запросе используется ключевое слово AS для создания псевдонима
  16. В запросе используются псевдонимы для удобства работы с данными
  17. В запросе используются псевдонимы для удобства работы с данными
  18. В запросе используются псевдонимы для удобства работы с данными
  19. В запросе используются псевдонимы для удобства работы с данными
  20. В запросе используются псевдонимы для удобства работы с данными

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут