объединить две встроенные таблицы - неизвестный столбец? - PullRequest
0 голосов
/ 29 ноября 2011

Я получаю «Код ошибки: 1054. Неизвестный столбец E1.extensao в списке полей» Я изменил имена таблиц, но мой запрос выглядит следующим образом:

SELECT E1.stateName, E1.city, E1.boughtEnough, E2.bought
FROM 
    (SELECT count(DISTINCT idClient),city,stateName FROM
        (SELECT
            max(n.ordervalue) as boughtEnough,
            m.idClient,
            i.nome AS city,
            i.id AS cityId,
            i.stateName
        FROM Clients c
        INNER JOIN client_order m ON c.idClient = m.idClient
        INNER JOIN orders n ON m.client_order = n.client_order
        INNER JOIN orderDetail p ON n.idorder = p.idorder
                                AND p.idCurso = m.idCurso
        INNER JOIN cities i ON c.city = i.id

        WHERE
            m.idCurso = '10'
        GROUP BY 
            m.idClient,
            i.nome,
            i.id,
            i.stateName
        HAVING max(n.orders) >= 6) t
    GROUP BY t.city, t.stateName
    ORDER BY t.stateName,t.city) E1
JOIN (SELECT count(DISTINCT idClient),city,stateName FROM
        (SELECT
            count(n.ordervalue) as bought,
            m.idClient,
            i.nome AS city,
            i.id AS cityId,
            i.stateName
        FROM Clients c
        INNER JOIN client_order m ON c.idClient = m.idClient
        INNER JOIN orders n ON m.client_order = n.client_order
        INNER JOIN orderDetail p ON n.idorder = p.idorder
                                AND p.idCurso = m.idCurso
        INNER JOIN cities i ON c.city = i.id

        WHERE
            m.idCurso = '10'
        GROUP BY 
            m.idClient,
            i.nome,
            i.id,
            i.stateName
        HAVING ((max(n.orders) < 6) AND (count(n.orders) >= 1))) t
    GROUP BY t.city, t.stateName
    ORDER BY t.stateName,t.city) E2 ON E1.cityId = E2.cityId

Я больше привык к SQL Server, а не к MySQL. Что я не так делаю?

1 Ответ

3 голосов
/ 30 ноября 2011

Я предполагаю, что E1.extensao означает E1.boughtEnough?Посмотрите внимательно на то, как определяется E1:

    (SELECT count(DISTINCT idClient),city,stateName FROM
        (SELECT
            max(n.ordervalue) as boughtEnough,
        ...) t
    ...) E1

Есть t.boughtEnough, но вы не "передаете его" до E1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...