Каждая производная таблица должна иметь свой собственный псевдоним, я не знаю, как исправить - PullRequest
0 голосов
/ 04 мая 2019

Я не знаю, как решить эту проблему или почему я ее получаю: Каждая производная таблица должна иметь свой псевдоним.

SELECT COUNT(*) FROM (
    SELECT COUNT(udelezba_akcije.Oseba_idOseba) AS `value_occurrence`  FROM udelezba_akcije
    INNER JOIN oseba ON udelezba_akcije.Oseba_idOseba = oseba.Ime_osebe
    GROUP BY udelezba_akcije.Oseba_idOseba
)

Ответы [ 2 ]

0 голосов
/ 04 мая 2019

Очевидное решение - добавить псевдоним таблицы в подзапрос («производная таблица») в предложении FROM.В MySQL для этой цели требуются псевдонимы (некоторые базы данных этого не делают, но большинство делают).

Я бы просто использовал псевдонимы в целом для упрощения запроса:

SELECT COUNT(*)
FROM (SELECT COUNT(ua.Oseba_idOseba) AS `value_occurrence`
      FROM udelezba_akcije ua INNER JOIN
           oseba o
           ON ua.Oseba_idOseba = o.Ime_osebe
      GROUP BY ua.Oseba_idOseba
     ) uao;

Лучший способ - удалитьподзапрос целиком.Вы можете написать это как:

SELECT COUNT(DISTINCT ua.Oseba_idOseba) 
FROM udelezba_akcije ua INNER JOIN
     oseba o
     ON ua.Oseba_idOseba = o.Ime_osebe;

Я не знаю, как выглядят ваши данные, но это может быть более эффективно записано как:

SELECT COUNT(DISTINCT ua.Oseba_idOseba) 
FROM udelezba_akcije ua
WHERE EXISTS (SELECT 1 
              FROM oseba o
              WHERE ua.Oseba_idOseba = o.Ime_osebe
             );

И написано так, этовозможно (в зависимости от данных), что COUNT(DISTINCT) можно заменить на COUNT(*).

0 голосов
/ 04 мая 2019

Добавьте псевдоним к нему. Одно письмо в конце подойдет. Например:

SELECT COUNT(*) 
FROM (
  SELECT COUNT(udelezba_akcije.Oseba_idOseba) AS value_occurrence 
  FROM udelezba_akcije INNER JOIN oseba ON udelezba_akcije.Oseba_idOseba = oseba.Ime_osebe 
  GROUP BY udelezba_akcije.Oseba_idOseba
) x

Видите x Я добавил? Вот и все.

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