SQL (MySQL) - Как использовать назначенное имя из вложенного запроса во внутреннем соединении - PullRequest
0 голосов
/ 27 ноября 2018
SELECT name, age
FROM (SELECT name, age / 2
      FROM maintable
      INNER JOIN ......
      ) AS C
INNER JOIN (SELECT (Max(sales), person
            FROM C) AS D ON .....

Я пытаюсь написать запрос, аналогичный приведенному выше, однако, когда я ссылаюсь на C во внутреннем разделе соединения, он говорит, что его не существует.Как я могу ссылаться на него?

Ответы [ 2 ]

0 голосов
/ 27 ноября 2018

Вы также можете ссылаться на него в выбранной области:

SELECT 
 name
 , age
 , (SELECT Max(sales) FROM maintable where maintable.id = c.id) MaxSales 
FROM (
  SELECT name, age / 2
  FROM maintable
  INNER JOIN ......
) AS C

Удачи!

0 голосов
/ 27 ноября 2018

Вы не можете сделать это, вы можете использовать только подзапрос в подзапросе.

SELECT name, age
FROM 
(
      SELECT name, age / 2
      FROM maintable
      INNER JOIN ......
) AS C
INNER JOIN
(
    SELECT Max(sales), person
    FROM
    (
      SELECT name, age / 2
      FROM maintable
      INNER JOIN ......
    ) AS C
) AS D ON ....

, если ваша версия mysql поддерживает CTE

WITH C AS ( 
      SELECT name, age / 2
      FROM maintable
      INNER JOIN ......
    )
SELECT name, age
FROM C JOIN 
(
    SELECT Max(sales), person
    FROM C
) AS D ON ....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...