最近在做一个项目,有一个令人发指的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的后面。