Проблема с ошибкой 1054 в запросе mysql

Иззет

Новичок
Здравствуйте, возникает ошибка при запросе к БД, а именно при задании сортировки.
Unknown column 'add_date' in 'order clause'
Странно, что ошибка выходит, учитывая то, что данное поле в таблице БД существует, да и сортировка по другим полям тоже проходит нормально.

С чем это может быть связано?
Заранее всем спасибо за помощь.
 

badmovie

Новичок
Сделайте EXPLAIN tbl_name, где table_name - имя вашей таблицы и покажите вывод, а также приведите сам текст запроса в котором возникает ошибка.
 

Иззет

Новичок

Я грубо вырежу несколько строк из кода, думаю должно быть ясно:
PHP:
$query = "(SELECT `goods_id`, `name`, `img`, `anons`, `hits`, `new`, `sale`, `price` FROM `goods`
              WHERE `goods_brandid` = '$category' AND `visible` = '1')
              UNION
              (SELECT `goods_id`, `name`, `img`, `anons`, `hits`, `new`, `sale`, `price` FROM `goods`
              WHERE `goods_brandid` IN ( SELECT `brand_id` FROM `brands` WHERE `parent_id` = $category ) AND `visible` = '1')";
    $query .= " ORDER BY `$order`";
    if($up) $query .= " DESC";
    $query .= " LIMIT ".limit($page, display_num());
 

Иззет

Новичок
Спасибо, нашёл причину ошибки. Вся загвоздка в операторе ORDER BY - сортирует полученные результаты по выбранному полю (т.е. сортирует данные по полученному из БД полю).
В моём случае add_date в выборке не участвует, в данной ситуации приемлем оператор GROUP BY.
 

badmovie

Новичок
Спасибо, нашёл причину ошибки. Вся загвоздка в операторе ORDER BY - сортирует полученные результаты по выбранному полю (т.е. сортирует данные по полученному из БД полю).
В моём случае add_date в выборке не участвует, в данной ситуации приемлем оператор GROUP BY.
А почему бы просто не добавить поле date_added в оба запроса и не отсортировать результат нему?
 
Сверху