从不同的表中获取每列中的多个不同数据

时间:2016-09-20 14:08:14

标签: mysql

我正在尝试从5个不同的表(projectName,{{1}获取所有不同的列(villageNameblockNamelotNametbl_project }},tbl_villagetbl_block)。

当我尝试使用此代码时:

tbl_lot

我得到了不同的SELECT DISTINCT`projectName`, `villageName`, `blockName`, `lotName` FROM `tbl_property` LEFT JOIN `tbl_project` ON tbl_property.projectID = tbl_project.projectID LEFT JOIN `tbl_village` ON tbl_property.villageID = tbl_village.villageID LEFT JOIN `tbl_block` ON tbl_property.blockID = tbl_block.blockID LEFT JOIN `tbl_lot` ON tbl_property.lotID = tbl_lot.lotID LEFT JOIN `tbl_model` ON tbl_property.model = tbl_model.modelID LEFT JOIN `tbl_street` ON tbl_property.street = tbl_street.streetID WHERE tbl_property.propertyStatus = 1 GROUP BY `projectName`, `villageName`, `blockName`, lotName ORDER BY `projectName` ASC, `villageName` ASC, `blockName` ASC, `lotName` ASC projectName但是当我添加villageName时: blockName projectName SELECT DISTINCT villageName , blockName ,它没有区别。这与...相同。但它显示了结果,但根本没有区别。

tbl_project

lotName

tbl_village

**projectName**
Project 1
Project 1
Project 2
Project 3

tbl_block

**villageName**
Village 1
Village 2 
Village 2
Village 4

tbl_lot

**blockName**
Block 1
Block 2
Block 6
Block 6

预期产出:

项目名称 ---- 村名 ---- 阻止名称 ---- 地段名称

项目1 ----------村1 -----------第1区-------------第1批

项目2 ----------村2 -----------第2区-------------第2批

项目3 ----------村庄4 -----------第6区-------------第3批

1 个答案:

答案 0 :(得分:0)

如果要将“blockName”添加到选择列表而不是故意在GROUP BY子句中留下“lotName”,那么它可能是您的问题。您可以按不在选择列表中的项目进行分组,这些项目将显示重复项。

tldr,选择项目必须按项目匹配并删除不需要的联接。

对于MYSQL,请参阅

Find duplicate records in MySQL