Задавайте вопросы, мы ответим
Вы не зашли.
Добрый день. Не могу сообразить, как составить нужный запрос. Имеется 3 таблицы: две с данными и одна промежуточная для связи множество к множеству.
blank (id, number), naklad (id, number) и temp(id, blank, naklad)
если составить запрос вида
SELECT blank.id, blank.number, naklad.number INNER JOIN temp ON temp.blank = blank.id INNER JOIN naklad ON naklad.id = temp.naklad GROUP BY blank.id ORDER BY blank.number
она работает нормально, но в случае, если один бланк последовательно проходил по нескольким накладным, в результате выдает номер накладной, выбранный непонятно как.
Буду очень благодарен, если подскажете мне, как составить запрос так, чтобы данные из таблицы накладных (в примере привел только номер, есть и другие поля) брались по самой последней (по автоинкрементируемому id) накладной.
Заранее благодарен.
Неактивен
Выбранный непонятно как - потому-что у Вас группировка по ид бланка.
Неактивен
А по чему тогда группировать? Результат нужен в виде списка бланков, по одной записи на бланк, независимо от того, сколько записей в накладных для этого бланка.
Неактивен
Это понятно, просто при группировке у Вас значение temp.naklad может быть любое из всех имеющихся. Если Вам надо максимальное, добавьте в группировку MAX(temp.naklad).
ЗЫ Много думать не люблю, но по идее сработает
Неактивен
Добавить группировку по максимуму, как Вы советуете, не получается. Invalid use of group function
Неактивен