나는 이상한 상황이 있으며 무엇이 잘못되었는지 잘 모릅니다. 나는 간단한 조건을 기반으로 일치하는 것을 찾는다. 이 쿼리는 mysql에서 잘 실행되지만 PHP를 통해 호출 할 때 값을 반환하지 않습니다.PHP에서 자체 조인 조건이 실패하지만 mysql에서 작동합니다.
select * from Requests p inner join Requests c on c.ID<>p.ID
where usr_ID<>4
and p.c_ID = c.c_ID
다음은 작동하지 않지만 제대로 작동합니다.
DB::table('Requests as parent')
->join('Requests as child', 'parent.ID', '<>', 'child.ID')
->where('parent.usr_ID', '<>', 4)
**->where('parent.c_ID', '=', 'child.c_ID')**
->get();
위의 쿼리에서 두 번째 조건 (c_ID)을 제거하면 올바른 값이 반환됩니다. 모든 행에 대해이 값은 1입니다. child.c_ID 또는 parent.c_ID를 1로 대체하면 다시 작동합니다. 나는 다른 컬럼에서도 시도해 보았고 같은 문제를 발견했다.
모든 포인터?
빠른 답장을 보내 주셔서 감사합니다. 그것은 작동하는 것처럼 보이지만 모든 장소에서 비슷한 조건을 가지고 있으며이 자체 조인을 제외하고는 잘 작동합니다. 나는 그것들 모두를 바꿀 필요가 있니? – Chandra
그건 그렇고, 이것은 램프 스택에 내 첫 프로젝트입니다. 나는이 모든 동안 마이크로 소프트와 붙어 있었다. – Chandra
반갑습니다. 그것은 ... 두 열을 비교하는 모든 조건을 업데이트해야합니다. 왜냐하면 laravel은 두 번째 (또는 세 번째) 매개 변수를 열 이름이 아닌 값으로 평가하려고하기 때문입니다. 무슨 뜻인지 알 겠어? – lukasgeiter