Как использовать псевдонимы в естественном полном внешнем соединении MySQL? - PullRequest
0 голосов
/ 14 февраля 2019

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

SELECT *
FROM (SELECT * FROM student s WHERE dept_name='Comp.Sci')
NATURAL FULL OUTER JOIN
(SELECT * FROM takes t WHERE semester='Spring' AND YEAR=2009);

1 Ответ

0 голосов
/ 14 февраля 2019

в mysql отсутствует полное внешнее объединение, но вы можете использовать объединение (в конце концов покажите нам правильный образец данных для предложения лучшего объединения запросов)

    SELECT * FROM student s WHERE dept_name='Comp.Sci'
    union
    SELECT * FROM takes t WHERE semester='Spring' AND YEAR=2009

Для вашего кода вам нужен псевдоним для каждой таблицы, например: для каждого из ()

    SELECT *
    FROM (SELECT * FROM student s WHERE dept_name='Comp.Sci') t1
    JOIN ........
    (SELECT * FROM takes t WHERE semester='Spring' AND YEAR=2009) t2;

в любом случае, если у вас есть одинаковое имя столбца в производной вкладке, вы не можете использовать * (выбрать все), но использовать явное имя столбца и псевдоним для избежания неоднозначности

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