> 백엔드 개발 > Golang > 쿼리에서 LEFT 조인을 사용하여 SQLC 생성 코드에서 NULL 열을 검색하는 중 오류가 발생했습니다.

쿼리에서 LEFT 조인을 사용하여 SQLC 생성 코드에서 NULL 열을 검색하는 중 오류가 발생했습니다.

WBOY
풀어 주다: 2024-02-06 08:30:04
앞으로
466명이 탐색했습니다.

使用查询中的 LEFT 连接扫描 SQLC 生成的代码中的 NULL 列时出错

질문 내용

방금 PostgreSQL의 테이블을 다음과 같이 NULLABLE로 수정했습니다.

으아악

a.b_id > b.id에는 외래 키 제약 조건이 있습니다.

이 테이블을 조인하고 다음과 유사한 b.name을 반환하는 쿼리가 많이 있습니다.

으아악

때문에 LEFT JOIN,查询 b_name 的返回类型可以是 NULLa.b_id 中任何为 NULL 的行都将为 b_name 返回 NULL. 관찰하다.

실제로 쿼리는 WHERE 절에 여러 개의 null 허용 매개 변수를 보내는 훨씬 더 복잡하지만 직관적으로는 그것이 문제라고 생각하지 않습니다. 확실히 SQLC는 쿼리의 SELECT 부분에서 행 구조를 구성합니다...?

SQLC는 다음과 유사한 행 구조를 생성합니다.

으아악

BName은 null을 허용해야 하지만(구성에서 다양한 gobuffalo null 재정의를 사용함) 구조체에 없으므로 스캔 오류가 발생합니다.

으아악

이 작업은 일반적인 작업임에 틀림없기 때문에 문서에 분명한 내용이 누락된 것이 분명합니다. 지금까지 상당히 복잡한 INNER JOIN 테이블 쿼리나 null 허용 열 반환 유형이 있는 SQLC를 사용하는 데 아무런 문제가 없었습니다.

SO 커뮤니티가 SQLC에 대해 얼마나 활발한지 잘 모르겠습니다. 직관적이거나 모호한 피드백에 감사드립니다.


정답


제안 - 어떤 일이 일어날지 알아보려면 쿼리에 b_name 替换为 coalesce(b_name, '** Attention **')를 입력하세요.

으아악

또는 허용 가능하고 의미가 있는 경우 coalesce(b_name, '')로 바꾸세요.

으아악

또는 필터링b_name하여 null 결과

으아악

위 내용은 쿼리에서 LEFT 조인을 사용하여 SQLC 생성 코드에서 NULL 열을 검색하는 중 오류가 발생했습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:stackoverflow.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿