Нужно ли ссылаться на несколько таблиц в операторе SELECT при создании представления mysql?
http://www.mysqltutorial.org/create-sql-updatable-views.aspx
Эта статья выше заявляет следующее:
Оператор SELECT не должен ссылаться на более чем одну таблицу. Это означает, что он не должен содержать более одной таблицы в предложении FROM, других таблиц в выражении JOIN или UNION с другими таблицами.
Это правда и почему? Как бы вы запросили две связанные таблицы, как если бы это была одна (через представление), без использования объединений в каждой строке запроса?
3 ответа
Когда вы создаете представление, вы уже комбинируете таблицы. Они пытаются сказать, что в общем случае у вас не должно быть оператора SELECT, который объединяет представление и таблицу. Хотя вы МОЖЕТЕ сделать это, это не лучшая практика. Задача View - создать таблицу с полями из нескольких таблиц, которые вы постоянно вызываете на регулярной основе. Представление более эффективно, чем СОЕДИНЕНИЕ таблиц в каждом операторе SELECT для этих нескольких таблиц.
Эта страница предназначена для обновляемых представлений, а условие возможности обновления базовой таблицы через представление означает, что вы должны наложить некоторые ограничения на содержимое представления, чтобы MySQL смогла отобразить ваше обновление обратно на Основная таблица.
Если вы просто хотите читать из представления без необходимости обновления базовой таблицы, используя его, вы можете выбрать из более чем одной таблицы, используя соединения, UNION
s и т. д. в определении представления.
Это верно только для обновляемых представлений. Если вы не можете связать более 1 таблицы в представлении, тогда вся точка зрения будет бессмысленной:)