数据库和后台查询视图结果不一致

最近在做一个项目,有一个令人发指的bug,虽然解决了,但是并没有搞明白其中的原理是什么;

bug:id条件没有查错,但是后台就是返回给我两条一摸一样的数据

 

 数据库后台查询:查询结果是两条不一样的数据

 

原来视图时这么写的:写法一

CREATE OR REPLACE VIEW DBGL_V_MEET AS
SELECT
a.*,
b.*,

c.*,

FROM  test_main a
LEFT JOIN test_detail b ON a.recid=b.mainid
LEFT JOIN test_proj c ON b.projid=c.recid
;

改正后:写法2

CREATE OR REPLACE VIEW DBGL_V_TEST AS
SELECT
a.*,
b.*,
c.*, FROM test_detail a LEFT JOIN test_main b ON a.mainid
=b.recid LEFT JOIN test_proj c ON a.projid=c.recid ;

虽然:写法一和写法二,在数据库里面执行结果都时一样的,可以查询出两条不一致的记录,但是写法一在后台执行后返回的是两条一摸一样的记录,改成写法2后,查询出来的才是正确的

两条不一致的记录。子表要放在form的后面。

 

posted @ 2021-09-02 10:07  程序杨%  阅读(525)  评论(0编辑  收藏  举报