尝试运行查询,该查询构建所有包含有关它们的信息的报告列表。当我在没有INNER JOIN部分的情况下运行此查询时,它工作正常,并且有一个报告列表,分别显示其信息。当我尝试在插入INNER JOIN查询时运行它时,它不返回任何数据。这两个表肯定都有数据,不知道问题是什么。谢谢。
这是在添加INNER JOIN方法之前工作并返回数据的查询:
SELECT reports_tbl.photoname
, reports_tbl.location
, reports_tbl.details
, reports_tbl.image
, reports_tbl.spotteddate
, reports_tbl.uploaddate
, typesofphoto_tbl.typename
FROM reports_tbl
这是不返回包含INNER JOIN的数据的查询:
SELECT reports_tbl.photoname
, reports_tbl.location
, reports_tbl.details
, reports_tbl.image
, reports_tbl.spotteddate
, reports_tbl.uploaddate
, typesofphoto_tbl.typename
FROM reports_tbl
INNER JOIN typesofphoto_tbl
ON reports_tbl.typeofphotoID = typesofphoto_tbl.ID
答案 0 :(得分:0)
INNER JOIN:当BOTH表中至少有一个匹配时返回所有行。
LEFT JOIN:返回左表中的所有行,并匹配 右表中的行RIGHT JOIN:返回右边的所有行 表,以及左表中匹配的行 FULL JOIN:当其中一个表中存在匹配时返回所有行
因此,当您使用Inner Join
时,表reports_tbl
和typesofphoto_tbl
中都没有匹配,这就是您无法获取数据的原因。
尝试LEFT-JOIN
SELECT reports_tbl.photoname
, reports_tbl.location
, reports_tbl.details
, reports_tbl.image
, reports_tbl.spotteddate
, reports_tbl.uploaddate
, typesofphoto_tbl.typename
FROM reports_tbl
LEFT JOIN typesofphoto_tbl
ON reports_tbl.typeofphotoID = typesofphoto_tbl.ID
如果右表reports_tbl
中没有匹配的行,您将从左表typesofphoto_tbl
获取记录。