Question

Are there any limitations in the functionality of SQL Views for MySQL?

ex: Can you create a table view using 'JOIN' commands?

Was it helpful?

Solution

You should read Restrictions on Views for details on view limitations.

OTHER TIPS

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.

  1. 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'
    
  2. 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
    
  3. 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
    
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top