Я пытаюсь получить название продукта из таблицы order_product, используя следующий запрос MySQL:

Запрос

SELECT o.order_id, 
       CONCAT(o.firstname, ' ', o.lastname) AS customer, 
       ( SELECT os.name 
         FROM order_status os 
         WHERE os.order_status_id = o.order_status_id 
         AND os.language_id = '" . (int)$this->config->get('config_language_id') . "' 
       ) AS order_status, 
       ( SELECT name 
         FROM order_product 
         WHERE order_id = o.order_id 
         LIMIT 1 
       ) AS product_name, 
       o.shipping_code, 
       o.total, 
       o.currency_code, 
       o.currency_value, 
       o.date_added, 
       o.date_modified, 
       o.telephone, 
       o.shipping_city, 
       o.order_type, 
       o.shipping_address_1 
FROM   order o 
AND    product_name LIKE '%smart tv3%'`

Пожалуйста, помогите мне разрешить эту ошибку. А также дайте мне рекомендации.

Это ошибка, я понял.

0
Ask Bytes 17 Апр 2018 в 12:59

1 ответ

Лучший ответ

Я решил ошибку, заменив AND на HAVING в запросе. :)

< Сильный > QUERY

SELECT
   o.order_id,
   CONCAT(o.firstname, ' ', o.lastname) AS customer,
  (
  SELECT
     os.name 
  FROM
     order_status os 
  WHERE
     os.order_status_id = o.order_status_id 
     AND os.language_id = '" . (int)$this->config->get('config_language_id') . "' 
)
 AS order_status,
(
  SELECT
     name 
  FROM
     order_product 
  WHERE
     order_id = o.order_id LIMIT 1 
)
 AS product_name,
 o.shipping_code,
 o.total,
 o.currency_code,
 o.currency_value,
 o.date_added,
 o.date_modified,
 o.telephone,
 o.shipping_city,
 o.order_type,
 o.shipping_address_1 
FROM
 order o 
HAVING
 product_name LIKE '%smart tv3%'`

Спасибо @wayneOS и другим за ответ на мой вопрос :)

0
Ask Bytes 22 Апр 2018 в 09:35