В MySQL можно сортировать результаты, используя один столбец таблицы, если не пустой или другой столбец таблицы - PullRequest
2 голосов
/ 04 февраля 2011

У меня есть две таблицы: Artist и Pseudonym, Artist принадлежит псевдониму

Я хочу объединить две таблицы и отсортировать результат по Artist.lastname.Теперь, если у него есть псевдоним, следует использовать псевдоним, как в примере ниже, Balthus находится между BACON и CHAGAL, ​​даже если его фамилия начинается с K

Artist.Lastname     Pseudonym.name
BACON
KLOSSOWSKI          Balthus
CHAGAL
CEZANNE

Возможно ли сделать виртуальныйстолбец с псевдо, если не пустой или фамилией, а затем сортировать по этому столбцу?

SELECT .....
FROM Artists as a
LEFT JOIN Pseudonyms as p ON (a.pseudonym_id = p.id)
ORDER BY the_virtual_column

Ответы [ 2 ]

2 голосов
/ 04 февраля 2011
...ORDER BY COALESCE(p.name, a.Lastname)
2 голосов
/ 04 февраля 2011

Попробуйте это:

SELECT ..... 
  FROM Artists as a LEFT JOIN Pseudonyms as p 
    ON (a.pseudonym_id = p.id) 
 ORDER BY COALESCE(p.name , a.Lastname)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...