0
하나의 조건 (필드가 아닌)에서 두 테이블을 "단락 회로 방식"으로 조인하는 기능을 찾고 있는데, 조인 연산은 절대적으로 비쌉니다 (a.field :: VARCHAR는 확장 된 b.field :: TEXT 내에 포함되어 있습니다). 내가 중복 필요하지 않습니다단락 회로 Intersect/Inner 필드 (PostgreSQL)가 아닌 조건에서 SQL의 조인 기능
, 그것은 " 필드 words.'word의 행을 얻을 '어떤 books.'content에 포함되어 필드'"의 더. 첫 번째 책에 첫 번째 책이 포함되어 있으면 다른 2000 페이지 도서에도 포함되어 있는지 확인하지 않습니다.
내가 잘못하지 않다 아니하며 내부 조인도 INTERSECT 내 상황에서 유용 경우 : 내가 좋아하는이 포함 된 구체적인 조건에 교차하지 수, INTERSECT를 들어
- , 그래서 두 곳의 모든 레지스트리를 검색해야 , Cartesian 제품을 수행 한 다음 필터를 사용하여 필터링합니다.
- INNER JOIN의 경우 중복을 반환하므로 논리가 단락이 아닌 것으로 추측하고 내 단어가 각 책의 항목에 포함되어 있는지 확인합니다.
- IN 및 EXISTS도 사용자 지정 조건에서 작동하지 않는 것 같습니다.
최적의 성능을 발휘할 수있는 방법이 있습니까? 곳에서
정말 질문 (당신은 몇 가지 예를 들어 데이터를 추가 할 수 있습니까?) 이해하지 않는다, 그러나 당신이이'선택하려는 것 같습니다 ...는'(WHERE some_conditions_involving_a_and_b B의 ...) EXISTS – joop
나는 그 접근 방법을 생각하지 않았다. 네, SELECT WHERE EXISTS (SELECT 1 FROM CONCAT ('%', word, '%')) 책에서 SELECT 단어처럼 작동 할 수 있습니다. 각각 서브 쿼리하는 것이 좋을까요? time? – Whimusical
서브 쿼리는 매번 "** 매번 실행되지 않습니다."** 모든 ** 조건에 대해 EXISTS()가 작동합니다.'select * FROM JOIN B ON이 존재합니다 (select 42 where random() <0.5); ' – joop