Почему колонка в запросе неизвестна, даже если она уже объявлена?

usascha

Новичок
Почему колонка в запросе неизвестна, даже если она уже объявлена?

Всем снова здрасте.
Не понимаю почему в таком запросе система выдаёт ответ: #1054 - Unknown column 'l_num' in 'on clause'


PHP:
SELECT COUNT(q_id) AS qal, t.*, l.*,
						COUNT(DISTINCT q_level_num) AS qln,
						COUNT(DISTINCT q_theme_num) AS qtn
			FROM levels l, themes t
			LEFT JOIN questions q ON l_num = q_level_num
				AND q_theme_num = t_id
			GROUP BY l_num, t_id
			ORDER BY l_num ASC
Версия сервера: 5.0.45
Версия протокола: 10
 

usascha

Новичок
dark-demon, это было бы слишком простым решением. Я, конечно же, так делал.

Поскольку на версии 4.1.12 такой проблемы не было, то не знал как решать. На mysql.ru нашёл следующее решение:
PHP:
SELECT COUNT(q_id) AS qal, l.*, t.*
			FROM questions q
			LEFT JOIN levels l ON q.q_level_num = l.l_num 
			LEFT JOIN themes t ON q.q_theme_num = t.t_id
			GROUP BY l_num, t_id
			ORDER BY l_num ASC
Снова прошу помощи, поскольку есть необходимость усовершенствовать вывод:
Сейчас выводятся все записи из базы, отсортированные по l_num и t_id, имеющиеся в таблице questions, но несоответствия не выводятся. Т.е. нет значений для таблицы questions, которые не соответствуют l_num и t_id:

Код:
l_num1 (t_id1) - 2 вопросов
l_num1 (t_id2) - 7 вопросов
l_num1 (t_id3) - 5 вопросов
l_num1 (t_id4) - 1 вопросов
l_num1 (t_id5) - 4 вопросов
l_num1 (t_id6) - 1 вопросов
l_num1 (t_id7) - 10 вопросов
l_num2 (t_id2) - 4 вопросов
l_num2 (t_id4) - 1 вопросов
l_num2 (t_id6) - 1 вопросов
l_num2 (t_id7) - 6 вопросов
l_num3 (t_id1) - 1 вопросов
l_num3 (t_id5) - 2 вопросов
l_num3 (t_id6) - 2 вопросов
l_num3 (t_id7) - 3 вопросов
l_num4 (t_id1) - 3 вопросов
l_num4 (t_id6) - 1 вопросов
l_num4 (t_id7) - 1 вопросов
сами вопросы лежат в таблице questions, а таблицы levels и themes между собой связаны только через questions.

Как можно вывести значения для последних таблиц, которым нет соответствия в questions?
 
Сверху