Это мои 2 таблицы:Проблема выбора последней записи в РЕГИСТРИРУЙТЕСЬ
CREATE TABLE `documents` (
`Document_ID` int(10) NOT NULL auto_increment,
`Document_FolderID` int(10) NOT NULL,
`Document_Name` varchar(150) NOT NULL,
PRIMARY KEY (`Document_ID`),
KEY `Document_FolderID` (`Document_FolderID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=331 ;
CREATE TABLE `files` (
`File_ID` int(10) NOT NULL auto_increment,
`File_DocumentID` int(10) NOT NULL,
`File_Name` varchar(255) NOT NULL,
PRIMARY KEY (`File_ID`),
KEY `File_DocumentID` (`File_DocumentID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=333 ;
Там может быть несколько файлов на 1 документ. Я пытаюсь сделать SELECT
все документы с JOIN
в таблице files
, но я хочу только 1 запись файла, которая является последней.
Вот мой запрос, который я придумал, это не совсем работает, может ли кто-нибудь предложить правильный путь?
SELECT `documents`.*
FROM `documents`
INNER JOIN (
SELECT MAX(`File_ID`), *
FROM `files`
WHERE `File_DocumentID` = `documents`.`Document_ID`
GROUP BY `File_ID`) AS `file1`
ON `documents`.`Document_ID` = `file1`.`File_DocumentID`
WHERE `documents`.`Document_FolderID` = 94
ORDER BY `documents`.`Document_Name`
* Редактирование: ошибка Unknown столбца 'documents.Document_ID' в 'где предложение'
Добавлено некоторое форматирование ... Кроме того, вы можете захотеть, чтобы изменения «не совсем работали» во что-то более полезное. – Amadan