mysql - mybatis select 문 문제
过去多啦不再A梦
过去多啦不再A梦 2017-06-20 10:05:48
0
3
1088

메시지 알림이 계속됩니다. 이 메시지는 다른 사람이 귀하의 기사에 직접 답변한 것일 수 있습니다. 이때 해당 기사의 내용을 얻으려면 기사 테이블을 연결하는 데이터베이스 작업을 수행해야 합니다. [메시지 알림: 새로운 답변이 있습니다. 귀하의 기사 xxx] 또는 다른 사람이 귀하의 댓글에 응답한 후 댓글 양식이 연결되어 해당 댓글의 내용을 얻을 수 있습니다. [메시지 알림: 귀하의 댓글 xxx에 대한 새로운 답변이 있습니다]. 메시지가 표시되면 세부정보가 다음과 같이 표시됩니다.

데이터베이스 테이블 구조는 다음과 같습니다

mbelongbid는 메시지가 속한 기사의 ID이고, mbelongcid는 메시지가 속한 댓글의 ID입니다.
mbelongcid가 비어 있으면 해당 메시지가 기사에 대한 직접 답변이라는 의미이며 이때 기사 테이블이 연결됩니다.
mbelongcid가 비어 있지 않으면 메시지 답글 개체가 특정 댓글임을 의미하며, 현재 코멘트 테이블이 연결되어 있습니다.

이 요구 사항을 충족하기 위해 SQL 문을 작성하는 방법은 무엇입니까?
현재 생각은:

선택

으아악

from
(

으아악

)r,
<if test="mbelongcid == null">

으아악

</if>
<if test="mbelongcid != null">

으아악

</if>

이렇게 직접 작성하는 데 문제가 있습니다. mbelongcid가 null인지 여부에 따라 다른 테이블을 연결하여 다른 필드를 얻는 것이 일반적인 아이디어입니다.

过去多啦不再A梦
过去多啦不再A梦

모든 응답(3)
给我你的怀抱
  1. mbelongcid는 전달한 매개변수의 일부가 아니므로 mybatis는 null인지 여부를 알 수 없습니다! , 원하는 로직을 구현하려면 두 쿼리의 합집합으로 구성된 뷰를 생성하는 등 데이터베이스 측부터 시작해야 합니다.

으아악
  1. 프로그램을 작성할 때 이런 이상한 구문을 발견하면 먼저 설계 계획을 검토하십시오. 일반적으로 그 이유는 설계에 문제가 있기 때문입니다.

  2. 데이터 시트를 디자인한 사람은 누구인가요? 학생당원 m_belong_cid, 급여공제시에는 최소한 밑줄이라도 추가하세요.

过去多啦不再A梦

저희 프로젝트에서는 이런 상황이 발생하면 Provider에서 SQL을 직접 사용하여 해결합니다.

扔个三星炸死你

MessageMapper.xml의 이 부분에 있는 명령문은 다음과 같습니다.

메시지 클래스는 다음과 같습니다.

최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿