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

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

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

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

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

textual
Листинг программы
SELECT
    posts.id,
    posts.post_name AS link,
    posts.post_title AS title,
    m1.meta_value AS logo_id,
    m2.meta_value AS cashback,
    posts1.guid AS logo            
FROM $wpdb->posts AS posts
JOIN $wpdb->postmeta AS m1 ON posts.id=m1.post_id AND m1.meta_key = 'merchant_logo'
LEFT JOIN $wpdb->postmeta AS m2 ON posts.id=m2.post_id AND m2.meta_key = 'merchant_cashback'
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