mysql объединяет проблему, когда одно из значений не назначено

0

У меня проблема с получением записей из базы данных в конкретном контексте. У меня есть таблица "test". Я хочу, чтобы список был отсортирован драйверами и табличными "драйверами", которые я использую для настройки сортировки списка из таблицы "test".

Мой запрос:

SELECT * FROM test JOIN drivers ON test.driverid=drivers.driverid ORDER BY queno

Таблица "драйверы" выглядит так:

driver | driverid | queno
-------------------
drv1   | 15       | 3
drv2   | 30       | 1
drv3   | 40       | 2

Проблема в том, что в таблице "test" нет значения, присвоенного "driverid", тогда эти результаты перечислены в самом начале. Я хотел бы, чтобы они были перечислены в конце

Как это сделать? спасибо заранее!

  • 2
    Используйте полное внешнее соединение. stackoverflow.com/questions/5706437/...
  • 0
    Извините, у меня возникла проблема с тестированием, и мне пришлось изменить суть вопроса.
Показать ещё 1 комментарий
Теги:
sorting

3 ответа

0
Лучший ответ

Я нашел рабочее решение, где:

MySQL: упорядочить по полю, поместив пустые ячейки в конец

SELECT * FROM test JOIN drivers ON test.driverid=drivers.driverid ORDER BY if(queno = '' or queno is null,1,0), queno
0

Вы можете сделать первичный ключ driver.driverid (PK) и внешний ключ test.driverid (FK) и обеспечить целостность данных. Это также устранит вашу проблему.

0

Поместите знак минус (-) перед именем столбца и переключите ASC в DESC или DESC на ASC-порядок (напротив того, что вы хотите).

попробуй это:-

SELECT * FROM test JOIN drivers ON test.driverid=drivers.driverid ORDER BY -queno DESC;

Примечание. - Хотя это может хорошо работать для чисел и дат, это может быть не лучшее решение для сортировки полей с альфа-или буквенно-цифровыми значениями

  • 0
    не работает, но спасибо

Ещё вопросы

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