mysql - сортировка данных из 2 таблиц по значению из 3-й таблицы - PullRequest
0 голосов
/ 25 октября 2018

Я хотел бы отсортировать данные из 2 разных таблиц, связанных с UNION, параметр сортировки должен исходить из 3-й таблицы. (Drivers> queno)

Если я сортирую данные из 1 таблицы, я использую следующий код(отлично работает):

SELECT quotedb.*
FROM   quotedb
       LEFT JOIN drivers
              ON quotedb.driver = drivers.id
ORDER  BY IF(queno = ''
              OR queno IS NULL, 1, 0)  

Поэтому, когда я присоединяюсь к двум столам, я пытался с этим безуспешно ...

  (
 SELECT DISTINCT driver
 FROM            quotedb
 LEFT JOIN       drivers
 ON              quotedb.driver=drivers.id)
UNION ALL
          (
                          SELECT DISTINCT driver
                          FROM            packaging
                          LEFT JOIN       drivers
                          ON              packaging.driver=drivers.id )
ORDER BY
order by  IF(queno = ''
OR        queno IS NULL,1,0) 

Что мне нужно сделать, чтобы это работало ?.Заранее спасибо.

1 Ответ

0 голосов
/ 25 октября 2018

Вам нужно будет извлечь столбец queno также из отдельных запросов Select.

Попробуйте выполнить следующее:

(
 SELECT DISTINCT 
   qdb.driver AS driver, 
   d.queno AS queno 
 FROM quotedb AS qdb 
 LEFT JOIN drivers AS d ON qdb.driver = d.id
)
UNION ALL
(
 SELECT DISTINCT 
   p.driver AS driver, 
   d.queno AS queno 
 FROM packaging AS p 
 LEFT JOIN drivers AS d ON p.driver = d.id 
)
ORDER BY 
  (CASE WHEN queno = '' OR queno IS NULL THEN 1 
   ELSE 0
   END)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...