Как отсортировать этот запрос

0

У меня есть запрос mysql, и мне нужен порядок по времени

    SELECT id, name, level as lvl, leader as par3
FROM Road
WHERE Road.id LIKE '180' 
UNION ALL SELECT id, name, lvl, lastonline, dnd, null, raceid, currenthp, dressed_hp as hp 
FROM Users 
WHERE rid LIKE '180' AND id NOT LIKE (SELECT leader FROM Road WHERE id LIKE '180')
UNION ALL 
SELECT Users.id as id, Users.name, lvl, lastonline, dnd, currentlocid, Location.name as locname, currenthp, dressed_hp as hp 
FROM Users LEFT JOIN Location ON (Location.id = currentlocid) 
WHERE Users.id LIKE(SELECT leader FROM Road WHERE id LIKE '180') ORDER BY Users.timeacceptinvite
Теги:

2 ответа

1
Лучший ответ
select x.* from (
  SELECT
    id, name, level as lvl, leader as par3, timeacceptinvite
  FROM Road
  WHERE Road.id LIKE '180' 
  UNION ALL
  SELECT
    id, name, lvl, lastonline, dnd, null, raceid, currenthp, dressed_hp as hp, timeacceptinvite 
  FROM Users 
  WHERE rid LIKE '180'
    AND id NOT LIKE (SELECT leader FROM Road WHERE id LIKE '180')
  UNION ALL 
  SELECT
   Users.id as id, Users.name, lvl, lastonline, dnd, currentlocid, Location.name as locname, currenthp, dressed_hp as hp, timeacceptinvite 
  FROM Users LEFT JOIN Location ON (Location.id = currentlocid) 
  WHERE Users.id LIKE(SELECT leader FROM Road WHERE id LIKE '180')
) as x
 ORDER BY x.timeacceptinvite

изменить 1

но я думаю, что вы получите разное количество ошибок столбцов...

  • 0
    Нет необходимости в подзапросе, порядок распространяется на весь союз. Но если вы используете подзапрос, не забудьте его псевдоним.
  • 0
    @ Andomar обновлен
2

Порядок распространяется на весь союз. Вы не можете указать псевдоним, такой как Users.timeacceptinvite который используется только в части объединения. Вы должны указать имя столбца, как определено в самой верхней части объединения.

Сказав это, различные запросы, составляющие ваш союз, имеют разное количество столбцов. Это даст синтаксическую ошибку. В качестве первого шага убедитесь, что все части объединения возвращают одинаковое количество столбцов с одинаковыми типами.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню