Нужна помощь в объединении нескольких таблиц, чтобы получить максимальное число для каждой из них?

#mysql #sql #join

#mysql #sql #Присоединиться

Вопрос:

Я работаю над проектом, и мне нужно создать несколько операторов join. Я попытался создать тот, который выбирает максимальное значение столбца в трех разных таблицах. Я получаю сообщение об ошибке при ВЫБОРЕ, в котором говорится: «выбор недопустим в этой позиции сервера, ожидая, БЛОКИРОВКА, ТАБЛИЦА, ЗНАЧЕНИЯ, С, ‘(‘». Не уверен, что делать, какие-нибудь советы? Код приведен ниже.

 SELECT MAX(cn.TotalDollarPerArea) as 'North Total Dollar per Area',
        MAX(cs.TotalDollarPerArea) as 'South Total Dollar per Area', 
        MAX(ncl.TotalDollarPerArea) as 'Non-Climate Total Dollar Per Area',
FROM ClimateNorth cn,
    JOIN ClimateSouth cs using (TotalDollarPerArea),
    JOIN NonClimate ncl using (TotalDollarPerArea);
 

Ответ №1:

Просто используйте подзапросы:

 SELECT (SELECT MAX(cn.TotalDollarPerArea)
        FROM ClimateNorth cn
       ) as `North Total Dollar per Area`,
       (SELECT MAX(cs.TotalDollarPerArea)
        FROM ClimateSouth cs
       ) as `South Total Dollar per Area`,
       (SELECT MAX(ncl.TotalDollarPerArea)
        FROM NonClimate ncl
       ) as `Non-Climate Total Dollar Per Area`;
 

Примечание: используйте только одинарные кавычки для констант string и date. Для псевдонимов столбцов используются лучшие escape-символы.