2011-12-09 2 views
0

Android에서 내 첫 번째 Inner Join, Select 문을 시도했지만 작동하지 않습니다. 가능하다면 아직 어떻게 해야할지 모르겠으므로 자체 데이터베이스는 관계가 설정되어 있지 않습니다. 두 테이블에서 개별적으로 선택할 수 있지만 다음 선택이 작동하지 않습니다.Android Inner Join Select 문

return(getReadableDatabase().rawQuery("SELECT _id, FacilityName FROM Facility INNER JOIN BeachFacility ON Facility.FacilityID = BeachFacility.FacilityFK WHERE BeachFK=?", args)); 

내가 누락되었거나 추가로 알아야 할 것이 있습니까?

건배,

마이크.


누구든지 관심이있는 경우.

이 연습을 위해 데이터베이스 모델은 _id에 모든 기본 키 이름을두고 중간 테이블 즉 해변과 시설 사이에있는 beaches_facilities 테이블을 남겨 두었습니다. 기본 키 필드의 이름을 BF_id로 변경했습니다.

이 방법은 여전히 ​​다른 쿼리에서 _id 키를 사용하여 주 테이블을 참조 할 수 있으며 아름답게 작동합니다.

감사합니다.

+0

오류가 있습니까? 아니면 결과가 없습니다. – gwa

답변

0

: 나는 당신의 질문에 아무 잘못 표시되지 않습니다, 아래 두 개의 테이블을 조인의 샘플입니다.

위의 쿼리를 사용하면 "모호한 열 _id"오류가 발생할 수 있습니다. Yaqub가 언급했듯이 테이블을 검증하면 괜찮을 것입니다.

또한 항상 sqlite 클라이언트에서 쿼리를 테스트하십시오. 문제를 스스로 해결하십시오.

0

두 테이블 간의 관계를 만드는 방법은 this을 참조하십시오. 당신이 안드로이드의 _id 규칙을 다음과 같은 경우, 가정이 테이블에 모두 해당 열을 가지고있을 것입니다

private final String mySQL = "SELECT * FROM firstTable a INNER JOIN secondTable b ON a.id = b.id WHERE b.Field=?";