2016-06-23 2 views
0

Можно ли в MySQL, чтобы переименовать атрибуты таблицы в естественном JOIN, как это:атрибут Rename на NATURAL JOIN

select * FROM AAA NATURAL JOIN BBB AS NEW_NAME(ATTR_ONE, ATTR_TWO); 

Согласно Основы систем баз данных - Рамез Элмасри СУБД должна позволять его , но я не нашел способ сделать это в MySQL

ответ

0

Я работаю с MySQL более десяти лет, и я никогда не видел его; и если он поддерживает такую ​​функцию, я вполне уверен, что это будет упомянуто в официальных документах here.

На самом деле, я не уверен, что когда-либо вспоминал о такой возможности даже в реляционной алгебре, хотя мое официальное обучение закончилось более десяти лет назад.

Как бы такая операция работала; он должен заменить AAA.ATTR_ONE на отсутствие AAA.ATTR_TWO в JOIN? или он должен быть псевдоним поля результата? или что-то другое?


Справедливо наверняка единственной альтернативой является чем-то вроде

SELECT * 
FROM AAA 
NATURAL JOIN (
    SELECT field0 AS ATTR_ONE, field1 AS ATTR_TWO FROM BBB 
) AS NEW_NAME 

где field0 и field1 должны быть заменены реальными именами полей от ВВВ.

... Фактически, я начинаю искать требование книги довольно сомнительно; он предполагает порядок столбцов, который (хотя и может существовать на практике) не может считаться более сильным, чем порядок строк.

+0

Если у BBB были атрибуты с именем (один, два), результат NEW_NAME (ATTR_ONE, ATTR_TWO) должен создать «новую» таблицу с данными таблицы и атрибутами. – zer0uno

+0

А, так сглаживание таблицы и столбцов? Имеет ли это что-то конкретное, чтобы делать с NATURAL JOIN, или это было только ваше намеренное использование? В любом случае, после простого поиска в aliasing в MySQL в целом, похоже, что он не обеспечивает такой синтаксис. – Uueerdo

+0

Это должно быть полезно, если таблицы не имеют общих имен атрибутов. Если у вас есть книга, вы можете найти информацию на странице. 123 – zer0uno

Смежные вопросы