내 자바 프로그램에서 자체 조인 중복 된 SQLHSQLDB : 발생했습니다 내가 사용하여이 쿼리를 실행하면 별칭
Query query = session.createSQLQuery("SELECT DISTINCT * " +
"FROM lerneinheit AS le1 JOIN lerneinheit AS le2 " +
"ON le1.datum = le2.datum AND le1.pid = le2.pid " +
" WHERE " +
" le1.datum BETWEEN '2016-10-20' AND '2016-10-20' AND " +
" le1.pid = 3 AND " +
" (le1.abgesagtrechtzeitig = false OR le1.nichtabgesagt = true OR le1.erschienen=true) AND " +
" (le2.abgesagtrechtzeitig = false OR le2.nichtabgesagt = true OR le2.erschienen=true) AND " +
" le1.lernid!= le2.lernid AND " +
" (le2.beginn+1 BETWEEN le1.beginn AND le1.ende OR le2.ende-1 BETWEEN le1.beginn AND le1.ende) " +
" ORDER BY le1.beginn");
나는 다음과 같은 오류 얻을 : 나는 경우 잘 작동하지만
org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql alias [LERNID] during auto-discovery of a native-sql query
을 phpAdmin에서이 작업을 수행하십시오. 그 주제에서 찾은 모든 것은 전혀 도움이되지 못했습니다. 누구든지 그걸 해결하는 방법을 알아 냈어?
을 실제로 필요한 모든 열의 이름입니다. 컬럼 별명을 사용하여 두 테이블 별명과 동일한 컬럼을 구별하십시오. – fredt
@fredt 제 의도는 Lerneinheit-Objects를 관리하는 목록을 얻는 것이 었습니다. 하지만이 쿼리를 사용하여 모든 ID를 가져오고 다른 함수에서 해당 ID로 개체를 검색하려고합니다. – Syrious
그렇다고하더라도 SELECT의 각 행에 두 개의 개체가 필요하지는 않습니다. 'DISTINCT le1. * FROM ... '시도해보십시오. – fredt