3个联接的SQL查询不太正确

时间:2019-03-14 16:56:21

标签: php sql phpmyadmin

我正在尝试从数据库中删除这三个项目,但是我不认为我使用的是正确的JOIN

我需要的3个字段是:

  • fldDate-位于tblCompetition
  • 内部
  • fldCatName-位于tblCategory
  • 内部
  • fldName-位于tblImage
  • 内部

我已经发布了我的表格图表及其字段名称,以帮助解释:

Table Design

我目前的查询是:

$query ="SELECT `fldDate`, `fldCatName`, `fldName`
FROM `tblMembEntComp`
JOIN `tblImage` ON `tblMembEntComp`.`fldMemberID` = `tblMembEntComp`.`fldMemberID`
JOIN `tblCompetition` ON `tblMembEntComp`.`fldCompID`= `tblCompetition`.`fldCompID`
WHERE `fldMemberID` = 1;"

出现的错误是:Unknown column 'fldCatName' in 'field list',有人可以解释我要去哪里了。

1 个答案:

答案 0 :(得分:2)

您没有将tblCategory表与tblImage表联接。这就是MySQL找不到字段fldCatName的原因 您的查询应该是

$query ="SELECT `fldDate`, `fldCatName`, `fldName`
FROM `tblMembEntComp`
JOIN `tblImage` ON `tblMembEntComp`.`fldMemberID` = `tblMembEntComp`.`fldMemberID`
JOIN `tblCompetition` ON `tblMembEntComp`.`fldCompID`= `tblCompetition`.`fldCompID`
JOIN `tblCategory` ON `tblImage`.`fldCatID` = `tblCategory`.`fldCatID`
WHERE `tblMembEntComp`.`fldMemberID` = 1;"

根据您的用例,您可能想使用不同类型的联接。 This will help