昨天建了个视图,当我视图引入的主表有一列信息被删掉后,我所建的视图就会显示不出数据,我表与表之间用的是  INNER JOIN 进行连接的,我想问下有没有解决的方法?谢谢!

解决方案 »

  1.   

    不可能吧 表删除对视图没什么影响啊
    你把视图里面的sql语句拿出来跑下试试看有没数据
      

  2.   


       用的inner  也就是说  你那个表中字段的 数据没有了  
        那你两表之间的连接  也是用的  那个字段的话  肯定是没有数据的   join  on 的那个字段 不能是你 删除信息的  那个字段   不然 内连接 是不会有数据的 
      

  3.   


    哥们,我的意思是 视图有一列 引用的实表 :比如 name 列,我主表有这列,然后视图引用了这列,当我将主表name列的信息删掉后,视图它整个没有信息显示出来了。
      

  4.   

    你把 SQL贴出来吧
         只要  join  on的 不是那个 字段  删不删除  都不会有影响的 
      

  5.   

    打个比方吧
        比如 A表  B表   他们之间的连接关系是  A中的 name  和B表中的 name相等
    select a.*,b.* from A a inner join B b on a.name=b.name;  如果 你删除A表中 code的字段 是不会受影响的
      除非你  删除了  A表中的 name字段  那就没数据了  
      

  6.   

    如果 你删除的是其它字段,  那可能是你的视图  其它地方的SQL 出了问题
        应该不是这里
      

  7.   

    CREATE OR REPLACE VIEW VIEW_COMMENT AS
    SELECT TAB_PRODUCT_COMMENT.*, ap_member.username AS userName, TAB_PRODUCT.PRODUCTname AS PRODUCTNAME
    FROM TAB_PRODUCT_COMMENT INNER JOIN
          ap_member ON TAB_PRODUCT_COMMENT.userId = ap_member.userId 
          INNER JOIN
          TAB_PRODUCT ON TAB_PRODUCT_COMMENT.PRODUCTID = TAB_PRODUCT.PRODUCTID
      

  8.   

    TAB_PRODUCT_COMMENT.userId ,TAB_PRODUCT_COMMENT.PRODUCTID,ap_member.userId ,TAB_PRODUCT.PRODUCTID
      只要 这几个字段里面有相对应的数据的话   应该会有 结果出来的阿
     你也可以 测试下阿
       把这个视图 拆开 跑一下啊SELECT TAB_PRODUCT_COMMENT.PRODUCTID  FROM TAB_PRODUCT_COMMENT INNER JOIN
          ap_member ON TAB_PRODUCT_COMMENT.userId = ap_member.userId;SELECT TAB_PRODUCT_COMMENT.PRODUCTID  FROM TAB_PRODUCT_COMMENT INNER JOIN
          TAB_PRODUCT ON TAB_PRODUCT_COMMENT.PRODUCTID = TAB_PRODUCT.PRODUCTID;最后把这两条  连起来啊select t1.PRODUCTID  from 
    (
    SELECT TAB_PRODUCT_COMMENT.PRODUCTID as PRODUCTID   
         FROM TAB_PRODUCT_COMMENT INNER JOIN ap_member ON TAB_PRODUCT_COMMENT.userId = ap_member.userId
    )t1 inner join
    (
    SELECT TAB_PRODUCT_COMMENT.PRODUCTID as PRODUCTID   
       FROM TAB_PRODUCT_COMMENT INNER JOIN TAB_PRODUCT ON TAB_PRODUCT_COMMENT.PRODUCTID = TAB_PRODUCT.PRODUCTID
    )t2 on t1.PRODUCTID=t2.PRODUCTID   
    如果  单独运行没数据  说明 是你的数据问题 
      

  9.   

    灰常感谢,终于弄明白这是视图的通病。BUG一样!