Псевдоним MYSQL: невозможно присвоить имя новой таблице

#mysql #alias

#mysql #псевдоним

Вопрос:

введите описание изображения здесь

У меня есть 3 таблицы, и я хочу объединить их все и присвоить этой новой таблице имя ‘newtab’. Я сделал это:

 (select s1.Name as name, s1.ID as id, f1.Friend_ID as id, p1.Salary as sal
from Students as s1, Friends as f1, Packages as p1
where s1.ID=f1.ID AND s1.ID=p1.ID
) as newtab
  

теперь проблема заключается в том, что отображается ошибка с использованием ‘as newtab’.
Как я могу присвоить этой новой таблице имя в MYSQL?

Комментарии:

1. Это ваш полный код запроса?

2. Если вы хотите создать новую таблицу, вы должны использовать CREATE TABLE newtab SELECT ...

3. нет, но это все, что вам нужно, чтобы ответить на мой вопрос.

4. акина, я хочу выбрать первый столбец этой новой таблицы. как мне это сделать?

5. Пожалуйста, уточните вашу цель — нужен ли вам запрос, который извлекает объединенные данные, или создайте еще одну статическую таблицу, в которой хранятся такие данные.

Ответ №1:

Сам по себе сегмент кода синтаксически некорректен, вам нужен основной запрос

например

 SELECT * FROM
(select s1.Name as name, s1.ID as id, f1.Friend_ID as id, p1.Salary as sal
from Students as s1, Friends as f1, Packages as p1
where s1.ID=f1.ID AND s1.ID=p1.ID
) as newtab
  

вам также следует заменить соединения через запятую явными объединениями

«нет, но это все, что вам нужно, чтобы ответить на мой вопрос» — тогда ответ на вопрос заключается в том, что как отдельный код это синтаксически неверно — но вы это уже знаете.

Комментарии:

1. спасибо. понял. но это работало без использования ‘as’ в MYSQL.

2. as является необязательным для псевдонима на любом диалекте sql.

Ответ №2:

Вы пытаетесь присвоить запросу псевдоним, который невозможен, он возможен только в […из имя_таблицы в качестве имя_клиентов …]

 select s1.Name as name, s1.ID as id, f1.Friend_ID as id, p1.Salary as sal
  

Нет необходимости присваивать псевдоним имени столбца с тем же именем псевдонима.Псевдонимы используются, когда вам нужно другое имя
Нравится:

 select s1.Name as Student_Name, s1.ID as Student_ID, f1.Friend_ID, p1.Salary as sal
  

Пожалуйста, обратите внимание: если я не укажу псевдоним, то из столбца s1.Name , «Имя» по умолчанию будет отображаться как имя столбца.

 select s1.Name as name, s1.ID as id, f1.Friend_ID as id, p1.Salary as sal
from Students as s1, Friends as f1, Packages as p1
where s1.ID=f1.ID AND s1.ID=p1.ID;
  

удалив «как новую вкладку», запрос должен работать нормально.