2012-02-15 3 views
0

'object'(id, name, model_id), 'object_model'(id, name, type_id) 및 'object_type'(id, name) 테이블이 있습니다.MySQL이 테이블을 조인하는 올바른 방법

모든 테이블에서 적절한 이름을 얻기 위해이 세 가지를 올바르게 결합하려면 어떻게해야합니까?

SELECT object.id AS id, object.name AS name, object_model.name AS model_name, object_type.name AS type_name 
FROM object 
LEFT JOIN object_model ON object_model.id = object.model_id 
LEFT JOIN object_type ON object_type.id = object.model_type_id 

을하지만 열이 object_model.type_id라고

+1

http://www.codinghorror.com/blog/2007/10/a-visual-explanation-of-sql-joins.html – Vamsi

+0

마지막 줄에'object_model.type_id' 그냥 오타입니다. –

+0

오류는'object.model_type_id' 컬럼이 존재하지 않는다는 것을 의미합니다. 도움이 필요하면 스키마를 제공하여 추측 할 필요가 없습니다. –

답변

1

"알 수없는 열이 '절에'에 'object.model_type_id'"오류를 얻을 :

나는 다음을 수행하여 참여하기 위해 노력하고있어. 잘못된 점에 밑줄과 밑줄이 있습니다.

LEFT JOIN object_type ON object_type.id = object_model.type_id 

그렇지 않으면 쿼리가 원하는대로 수행됩니다.

0

정보에 따르면 "개체"에 "model_type_id"가 없습니다. 가지고있는 것은 "object_model"에 "type_id"입니다. 그래서 당신은 변경해야 추측

LEFT JOIN object_type ON object_type.id = object.model_type_id 

LEFT JOIN object_type ON object_type.id = object_model.type_id 
관련 문제