我有一个函数“fnc_FindIssueId”,它接受一个对象 ID 并返回其分配的问题 ID。
当我使用纯选择语句调用该函数时,它工作正常:
select fnc_FindIssueId(150083); // returns 1 as issueId for objectId of 150083
select fnc_FindIssueId(150072); // returns 2 as issueId for objectId of 150072
但是当我在 Inner Join 中使用它时,它会进入一个永无止境的循环:
select so.id, si.id
from smart_objects as so
LEFT OUTER join smart_issues as si
on si.id = fnc_FindIssueId(so.id)
where so.id in (150083, 150072);
是什么原因以及如何解决?