Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Не работает запрос


Recommended Posts

Всем привет. В файле /admin/model/sale/order.php в функции getOrders есть запрос:

$sql = "SELECT o.order_id, CONCAT(o.firstname, ' ', o.lastname, '<br>', o.telephone) AS customer, (SELECT os.color FROM " . DB_PREFIX . "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, o.shipping_code, o.total, o.currency_code, o.currency_value, o.date_added, o.date_modified FROM `" . DB_PREFIX . "order` o";
Пытаюсь добавить еще один результат для получения:
$sql = "SELECT o.order_id, CONCAT(o.firstname, ' ', o.lastname, '<br>', o.telephone) AS customer, (SELECT os.name_panel, os.color FROM " . DB_PREFIX . "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, o.shipping_code, o.total, o.currency_code, o.currency_value, o.date_added, o.date_modified FROM `" . DB_PREFIX . "order` o";
 

Сразу получаю ошибку:

Fatal error: Uncaught Exception: Error: Operand should contain 1 column(s)<br />Error No: 1241<br />SELECT o.order_id, CONCAT(o.firstname, ' ', o.lastname, '<br>', o.telephone) AS customer, (SELECT os.name_panel, os.color FROM bsea_order_status os WHERE os.order_status_id = o.order_status_id AND os.language_id = '1') AS order_status, o.shipping_code, o.total, o.currency_code, o.currency_value, o.date_added, o.date_modified FROM `bsea_order` o WHERE o.order_status_id > '0' ORDER BY o.date_added DESC LIMIT 0,5 in /var/www/...блаблабла

 

Подскажите пожалуйста, что я не так делаю? 

Надіслати
Поділитися на інших сайтах


24 минуты назад, REDDI сказал:

(SELECT os.name_panel, os.color FROM " . DB_PREFIX . "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

потому что выбираете два значения, а выводите через alias (AS) как одно

  • +1 1
Надіслати
Поділитися на інших сайтах

7 минут назад, AlexDW сказал:

потому что выбираете два значения, а выводите через alias (AS) как одно

а как правильно? даже если я допишу AS order_status, order_color
ничего не меняется

Надіслати
Поділитися на інших сайтах


1 час назад, AlexDW сказал:

Этот вариант мне не подходит. Ибо он 2 результата записывает в order_status
мне же нужно отдельно получить и выводить эти результаты 

Надіслати
Поділитися на інших сайтах


варианты на вскидку

1. тупо повторить подзапрос

 

2. объединить в подзапросе через concat

при обработке результатов использовать explode

 

3. переделать сам запрос

  • +1 1
Надіслати
Поділитися на інших сайтах

48 минут назад, AlexDW сказал:

варианты на вскидку

1. тупо повторить подзапрос

 

2. объединить в подзапросе через concat

при обработке результатов использовать explode

 

3. переделать сам запрос

решил повторить) Спасибо

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.