PQSQL中创建视图如下:SELECT contacts_im.im, contacts_im.date, contacts_im.class AS iclass, contacts_im.fields, contacts_im.upuser, contacts.createdate, contacts.updatedate, contacts.id, contacts."from", contacts.name, contacts."user", contacts.class, contacts_email.host,contacts_address."zip" ...
FROM contacts
FULL JOIN contacts_im ON contacts_im.class = contacts.id
FULL JOIN contacts_email ON contacts_email.class = contacts.id
FULL JOIN contacts_address ON contacts_address.class = contacts.id
...
FULL JOIN请问这么多的FULL JOIN可以吗?效率如何?然后SELECT如何调用视图,还有如何排序,是创建视图时排序还是SELECT的时候,怎么写?
然后视图可以WHERE吗?比如WHERE contacts.id = 1?在视图中WHERE还是SELECT时WHERE?

解决方案 »

  1.   

    Full join means full table scan to many tables!You may think of this by youself.
      

  2.   

    创建这样的视图,你的效率怎么办?
    视图使用上和表没有区别,但他不是物理存储,只是一个sql语句。
    你对视图的查询是建立在你创建的视图这条语句上的。
    如果一个查询对同一个字段多次需要order的话,可以在创建视图的时候加入order。
    建议你还是先看一下视图的定义和用途。视图主要是针对逻辑上的。