Имея немного проблем, понимая все, кроме самых простых концепций объединения. Диаграммы не очень помогают.Получение наивысшего значения столбца из объединенной таблицы
У меня есть три таблицы, которые я хочу присоединиться:
- среды,
- сессий и
- журналы
Вот некоторые скриншоты таблиц.
Среды:
Sessions:
Журналы:
Я хочу, чтобы выбрать столбцы ENVIR onments.envCode и logs.type. Я хочу получить logs.type из последнего журнала для каждой среды. Среды и журналы связаны через сеанс по средам .envCode в сеансах и session.sessionID в журналах.
Я пробовал несколько способов опросить это, но просто не могу понять, как это правильно. Это один из способов, я пытался сделать это:
SELECT environments.envCode
,logs.type
FROM environments
LEFT JOIN session
ON environments.envCode = session.envCode
LEFT JOIN logs
ON session.sessionID = logs.sessionID
WHERE logs.logID = (SELECT MAX(logID) FROM logs);
Что я получаю сейчас один результат, только строки с наибольшим LOGID из бревен. Имеет смысл, я понимаю, почему это не дает мне результаты, которые я ищу, но я все еще не уверен, как добиться результатов, которые я хочу.
Вы упомянули, что у вас возникли проблемы с пониманием базовых понятий Join, поэтому вот [полезный учебник] (http://blog.codinghorror.com/a-visual-explanation-of-sql-joins/), который оказался полезным мне. Я надеюсь, что это помогает. :) – consuela
Спасибо! Я сейчас посмотрю. – vanamerongen
Кто-нибудь может объяснить, что такое downvotes? Я думаю, что вопрос хорошо написан; мы знаем dbms, мы видим таблицы и данные, мы видим, что некоторые усилия были сделаны. Так почему же кто-то занижает это? Ну, +1 от меня за компенсацию :-) –