2014-04-03 4 views
-1

그래서 내 sql은 매우 녹슬다. 내가 오라클 DB에 연결 대학, 자바로 작성된, 일하고 있어요 프로젝트가JDBC 프로젝트에 여러 테이블 선택

, 나는

내가 원하는 6 표, 제품, 디지털 제품, CD, 아티스트, 노래와 song_artist이 추가, 업데이트 및 내 Java 프로그램 내에서 동시에 이러한 테이블에서 삭제하십시오. 그래서 나는 이것들에 합류하려고 갔다. 나는 이것을 시도하고있는 방법이 가능하거나 최선의 방법이라면, 나는 정말로 고소하지 않았다. 코드의 일부를 시도한 것이다. 테이블 구조는 다음과 같다. 변경할 수 없습니다. 순간

public ResultSet getCD() { 
    try { 
     String queryString = "SELECT * FROM PRODUCT p, DIGITAL_PRODUCT dp, CD c, SONG s, ARTIST a, CD_ARTIST ca" 
       + "WHERE p.PROD_ID = dp.PROD_ID AND dp.DIG_ID = c.DIG_ID AND c.CD_ID = ca.CD_ID " 
       + "AND ca.ARTIST_ID = a.ARTIST_ID AND ca.CD_ID = s.CD_ID" 
       + "GROUP BY PROD_ID "; 

     stmt = conn.createStatement(); 
     rset = stmt.executeQuery(queryString); 


    } catch (Exception e) { 
     System.out.println(e); 
    } 
    return rset; 
} 

나는 java.sql.SQLSyntaxErrorException 받고 있어요 : ORA-00933를 : SQL 명령하지 제대로 끝났다, 나는이에 의해 내 그룹과 함께 할 아마 추측하고있어.

정말 도움이 되었습니까?

+0

내가 잘못하지 않는다면'GROUP BY p.PROD_ID' 또는'dp.PROD_ID'가 있어야만 오류가 발생합니다. –

+0

p.PROD_ID로 변경했지만 여전히 동일한 결과입니다. – Johntk

+0

공백이 누락되었습니다 (예 :'s.CD_ID' 이후). 사용하는 조인 구문은 더 이상 사용되지 않는 것으로 간주됩니다. 실제로 명시 적 조인을 사용해야합니다. –

답변

1

문제 중 하나가 누락하면 group by이 방법과 함께 select *를 사용할 수 있다는 것입니다. 선택한 열이 group by 절에 나타나지 않으면 목록에서 max과 같은 집계 함수를 적용해야합니다. 레오는 당연히 맞습니다.

+0

그래, 알았어. 나에게 뭔가 할 일이 생겼어. 나는 그룹을 제거 했어. 더 이상 실수를하지 않았어. 나는 그룹이 전혀 필요 없다는 것을 확신하지 못해서 이제는 좀 더 놀고 볼거야. 나는 어떻게 지내는지. 귀하의 모든 의견에 감사드립니다. – Johntk

3

쿼리은 당신의 쿼리와 함께 "WHERE"전에 공간과 "GROUP"

+0

여전히 작동하지 않을 수 있습니다. 쿼리에 선택 "*"가 있고 그룹 기준은 "PROD_ID" – hellboy

+0

입니다. 그래서 공간을 넣으면 오류가 변경되었습니다. ORA-00979 : GROUP BY 표현이 아닙니다. – Johntk

+0

입니다. 왜냐하면 이제는 결과를 그룹화하는 집계 함수가 필요하기 때문입니다. 그룹 절을 사용하여 쿼리에서 정확히 원하는 것은 무엇입니까? (그래서 우리가 당신을 도울 수 있습니다) – Leo

관련 문제