mysql查询从三个表中选择数据

时间:2014-06-22 10:54:27

标签: mysql sql

wall_paths(table)

wall_paths

wall_dimensions

enter image description here

维度(参考表)

enter image description here

  

到目前为止我得到了什么:

查询

SELECT wall_paths.wall_id, wall_paths.wall_path, 
       dimensions.width, dimensions.height
FROM wall_paths
LEFT JOIN wall_dimensions
ON wall_paths.wall_id = wall_dimensions.wall_id
LEFT JOIN dimensions
ON wall_dimensions.dimension_id = dimensions.dimension_id
WHERE wall_paths.wall_id = 4;

结果

enter image description here

查询正在选择冗余行,我只想根据wall_dimensions表选择两个路径以及相应的维度。如下所示:

预期结果

enter image description here

查询中GROUP BY的结果

enter image description here

请帮助您选择如上所述的内容。

注意:我在查询中也尝试过DISTINCT但是返回错误。

1 个答案:

答案 0 :(得分:2)

实际上,查询结果符合预期。当你看到数据时,它会有意义。此查询的数据模型设置不正确。

小提琴(原始数据模型):http://sqlfiddle.com/#!2/8c1bf/1

小提琴(修改后的数据模型):http://sqlfiddle.com/#!2/3d9b0/5

不是说您应该更改模型,只是指出查询按照当前架构的预期运行。