2017-04-14 7 views
0

MySQL 데이터베이스에 2 개의 테이블이 있습니다.SQL을 사용하여 조인 쿼리를 적용하는 방법

첫 번째 테이블 컬럼 (ID (PK), 제목, 설명, 상태)

번째 테이블 객체와 속성 사이의 모든 관계가 저장되는 'object_property가'이고 그 관계와 '속성은'인 값, 열 (id (pk), object_id, property_id (fk 참조 열은 속성 테이블의 'id'), 값)

이제 '속성'테이블에서 모든 속성의 결과를 추출합니다. 'object_property'테이블에 존재하지 않습니다.

나는 SQL이에 대한 쿼리를 조인 작성해야

...

이 사람이 나를 도울 수 있습니까? 나는 SQL에 익숙하지 않다.

감사합니다.

답변

0

당신이 LEFT JOIN 다음 사용할 수 MySQL을 직접 실행하는 원시 쿼리를 작성한다면 :

SELECT p.* 
FROM property p 
LEFT JOIN object_property op 
    ON p.id = op.property_id 
WHERE op.property_id IS NULL 

당신은 HQL에서 쿼리를 작성 한 경우, 당신은 엔티티 인 (Java POJO)를 처리 할 것입니다. 나는 다음과 같은 HQL 쿼리를 제공 할 수 있습니다 :

from Property p 
left join p.ObjectProperty as op 
where op is null 

이 당신이 property 테이블을 나타냅니다 Property라는 클래스가 있다고 가정합니다. 또한 object_property 테이블에는 엔터티 클래스가 ObjectProperty이고 PropertyObjectProperty이라는 참조가 있다고 가정합니다.

0

이 시도 :

select p.* FROM property p inner join object_property o on o.property_id!=p.id; 
0

당신은 두 개의 테이블을 가지고

table property (id, title, description, status, primary key(id)) 
table object_property (id, object_id, property_id, value, primary key(id)) 

object_property.property_id 외국 키가

당신은 공통 키를 공유 행 (튜플)를 얻기 위해이 테이블에 가입 할 수 있습니다

,

을 property.id하는 것입니다

SELECT p.id, p.title, p.description, p.status, op.id, op.object_id, op.value 
FROM property AS p LEFT JOIN object_property AS op ON p.id = op.property_id ; 
당신은 INNER JOIN을 사용할 수 있습니다

가, 왼쪽은 가입, 오른쪽이 일치하려는 작업에 따라, 가입, 여기 하지만 당신이 찾으려면 object_property 테이블에없는 id (LEFT OUTER JOIN의 OUTER 부분)가있는 속성의 행.