Я новичок с MySQL и действительно имею проблему. (... и мой Engli sh оставляет желать лучшего ...: D)
База данных (извлечение) У меня есть 3 таблицы: Пакет , MainPost и MainPostHistory . A Пакет имеет от 1 до x MainPost , а MainPost имеет от 1 до x MainPostHistory (вид журнала). Каждая таблица имеет первичный ключ с автоинкрементом. Кроме того, MainPostHistory определяется DateTime и MainPostStatusID . Конечно, все таблицы связаны индексами внешнего ключа.
Что мне нужно сделать Я должен посчитать (для каждой Batch ) число MainPost с последним MainPostHistory с MainPostStatusID равно (для примера) 0. Итак, у меня есть 2 параметра: BatchID и MainPostStatusID для проверки.
Что я сделал Я написал следующий запрос, но получаю ошибку " Неизвестный столбец MP.ID":
SELECT COUNT(*)
FROM MainPost AS MP
WHERE (MP.BatchID = @BatchID) AND (((
SELECT qMPH.MainPostStatusID
FROM (
SELECT MPH.MainPostStatusID
FROM MainPostHistory AS MPH
WHERE MPH.MainPostID = MP.ID
ORDER BY MPH.DateTime DESC
LIMIT 1
) AS qMPH
)) = @SearchedMainPostStatusID);
Что я ожидаю Почему эта ошибка и как ее решить? И, кстати, это лучший способ сделать это? Пожалуйста! И спасибо за чтение! : -)