哥们,我的意思是 视图有一列 引用的实表 :比如 name 列,我主表有这列,然后视图引用了这列,当我将主表name列的信息删掉后,视图它整个没有信息显示出来了。
你把 SQL贴出来吧 只要 join on的 不是那个 字段 删不删除 都不会有影响的
打个比方吧 比如 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字段 那就没数据了
如果 你删除的是其它字段, 那可能是你的视图 其它地方的SQL 出了问题 应该不是这里
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
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 如果 单独运行没数据 说明 是你的数据问题
你把视图里面的sql语句拿出来跑下试试看有没数据
用的inner 也就是说 你那个表中字段的 数据没有了
那你两表之间的连接 也是用的 那个字段的话 肯定是没有数据的 join on 的那个字段 不能是你 删除信息的 那个字段 不然 内连接 是不会有数据的
哥们,我的意思是 视图有一列 引用的实表 :比如 name 列,我主表有这列,然后视图引用了这列,当我将主表name列的信息删掉后,视图它整个没有信息显示出来了。
只要 join on的 不是那个 字段 删不删除 都不会有影响的
比如 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字段 那就没数据了
应该不是这里
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
只要 这几个字段里面有相对应的数据的话 应该会有 结果出来的阿
你也可以 测试下阿
把这个视图 拆开 跑一下啊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
如果 单独运行没数据 说明 是你的数据问题