У меня есть две таблицы базы данных MySQL: один из них содержит список чемпионатов и другой заголовок записи. Схемы выглядеть следующим образом:Заказ MySQL-запроса с LEFT JOIN
championships
id INT AUTO_INCREMENT PRIMARY_KEY
name VARCHAR(255) NOT NULL UNIQUE
rank INT(2) NOT NULL DEFAULT '1'
title_history
id INT AUTO_INCREMENT PRIMARY_KEY
championship INT FOREIGN_KEY REFERENCES (championships.id)
winner VARCHAR(255) NOT NULL
date_won DATE NOT NULL
Я хочу, чтобы иметь возможность вытащить последний обладатель титула. Я в настоящее время тянуть в обладатель титула со следующей MySQL LEFT JOIN
запроса:
SELECT c.id, h.winner
FROM championships c
LEFT JOIN title_history h
ON c.id = h.championship
ORDER BY c.rank ASC
Однако, это только вытягивает первый результат для каждого чемпионата по индексу по умолчанию (id
я полагаю). Когда я попытался добавить ORDER BY h.date_won
в качестве предложения, запрос кажется упавшим и не возвращает никаких результатов.
Я что-то не так?
Что 'championships.rank' отстаиваем? –
Это так, что я могу заказать чемпионаты по важности. –
Я действительно не понимаю, если вы хотите сначала для каждого чемпионата, тогда у вас должна быть какая-то группировка, которая не только левая, это вопрос, который вы вставили здесь неполным? Изменение 'order by' не меняет число строк u, так что изменилось в этом запросе? –