Нужно ли ссылаться на несколько таблиц в операторе SELECT при создании представления mysql? - PullRequest
1 голос
/ 05 июня 2011

http://www.mysqltutorial.org/create-sql-updatable-views.aspx

В данной статье говорится следующее:

Оператор SELECT не должен ссылаться на более чем одну таблицу.Это означает, что он не должен содержать более одной таблицы в предложении FROM, других таблиц в выражении JOIN или UNION с другими таблицами.

Это правда и почему?Как бы вы запросили две связанные таблицы, как если бы это была одна (через представление), без использования объединений в каждой строке запроса?

Ответы [ 3 ]

3 голосов
/ 05 июня 2011

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

Если вы просто хотите читать из представления без необходимости обновлять базовую таблицу, используя его, вы можете выбрать из более чемодна таблица с использованием объединений, UNION s и т. д. в определении представления.

0 голосов
/ 05 июня 2011

Это верно только для обновляемых представлений .Если вы не можете связать более 1 таблицы в представлении, тогда вся точка зрения будет бессмысленной:)

0 голосов
/ 05 июня 2011

Когда вы создаете представление, вы уже комбинируете таблицы. Они пытаются сказать, что в общем случае у вас не должно быть оператора SELECT, объединяющего представление и таблицу. Хотя вы МОЖЕТЕ сделать это, это не лучшая практика. Задача View - создать таблицу с полями из нескольких таблиц, которые вы постоянно вызываете на регулярной основе. Представление более эффективно, чем СОЕДИНЕНИЕ таблиц для каждого оператора SELECT для этих нескольких таблиц.

...