Are there any limitations in the functionality of SQL View开发者_高级运维s for MySQL?
ex: Can you create a table view using 'JOIN' commands?
You should read Restrictions on Views for details on view limitations.
MySQL allows JOIN commands
MySQL Create View syntax
Short answer - yes. In two words view just named select (without order by of course).
As everything else in SQL, the syntax, features and possibilities depend on the database management system you are working with. But joining tables is pretty basic stuff. Views would not be of much use without it.
Regarding JOIN, yes:
mysql> create table foo (i int);
Query OK, 0 rows affected (0.03 sec)
mysql> create table bar (i int);
Query OK, 0 rows affected (0.03 sec)
mysql> create view foobar as select foo.i as foo_i, bar.i as bar_i from foo join bar on (foo.i=bar.i);
Query OK, 0 rows affected (0.02 sec)
But as others answers pointed, the manual is a great resource.
Temporary table:
CREATE TEMPORARY TABLE super (id int); mysql> CREATE OR REPLACE view cat AS SELECT * FROm super; ERROR 1352 (HY000): View's SELECT refers to a temporary table 'super'
System and local vars:
mysql> SELECT @sosize;//1000 mysql> CREATE OR REPLACE view cat AS SELECT *,@sosize FROm super; ERROR 1351 (HY000): View's SELECT contains a variable or parameter
Subqueries:
CREATE OR REPLACE view cat AS SELECT * FROm SELECT * FROM super; ERROR 1349 (HY000): View's SELECT contains a subquery in the FROM clause
精彩评论