MySQL正确的连接表的方法

时间:2012-02-15 19:37:40

标签: mysql sql join

我有3个单独的表:'object'(id,name,model_id),'object_model'(id,name,type_id)和'object_type'(id,name)。

如何正确加入这三个以从所有表中获取适当的名称?

我正在尝试通过执行以下操作加入:

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

但是得到错误:

  

“on clause”中的“未知列'object.model_type_id'”

2 个答案:

答案 0 :(得分:1)

您的专栏名为object_model.type_id。你在错误的地方有点和下划线。

LEFT JOIN object_type ON object_type.id = object_model.type_id

否则,您的查询看起来会像您希望的那样。

答案 1 :(得分: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