Присоединиться к двум подзапросам псевдонимов

0

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

SELECT a_id, a_sid, a_pid, a_trait1, a_trait2, a_trait3 FROM 
(SELECT 
id AS a_id, sid AS a_sid, pid AS a_pid, max(trait1) AS a_trait1, trait2 AS a_trait2, trait3 AS a_trait3 
FROM 
table_a 
GROUP BY 
sid) AS derived_a, 
(SELECT 
id AS s_id, trait10 AS s_trait10, trait11 AS s_trait11, trait12 AS s_trait12 
FROM 
table_s) AS derived_s 
LEFT JOIN 
derived_a ON derived_a.a_sid = derived_s.s_id
  • 0
    в чем именно проблема?: Вы получаете ошибку? Неправильные результаты?
  • 0
    Ошибка: Ошибка в SQL-запросе (1146): Таблица «производная_a» не существует. Я думал, что мне нужно указать псевдоним, который я определил. Но так или иначе это не работает так или иначе.
Теги:
join
subquery

1 ответ

1
Лучший ответ

неправильный sintax, вы должны использовать левое соединение для подзапроса и не присоединяться к псевдониму

  SELECT a_id, a_sid, a_pid, a_trait1, a_trait2, a_trait3 
  FROM  ( 
      SELECT  id AS a_id, sid AS a_sid, pid AS a_pid
        , max(trait1) AS a_trait1, trait2 AS a_trait2, trait3 AS a_trait3 
      FROM  table_a 
      GROUP BY id
  ) AS derived_a 
  left JOIN  (
      SELECT id AS s_id, trait10 AS s_trait10
        , trait11 AS s_trait11, trait12 AS s_trait12 
      FROM table_s) AS derived_s  ON derived_a.a_sid = derived_s.s_id
  • 0
    Спасибо, я так никогда не пробовал. Но это должно называться «GROUP BY sid». «GROUP BY id» ничего не делает, если идентификатор уникален.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню