Inner-Join查询不返回任何数据

时间:2015-04-08 17:48:41

标签: asp.net .net sql-server asp.net-mvc

尝试运行查询,该查询构建所有包含有关它们的信息的报告列表。当我在没有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

1 个答案:

答案 0 :(得分:0)

  
    

INNER JOIN:当BOTH表中至少有一个匹配时返回所有行。

         

LEFT JOIN:返回左表中的所有行,并匹配     右表中的行RIGHT JOIN:返回右边的所有行     表,以及左表中匹配的行     FULL JOIN:当其中一个表中存在匹配时返回所有行

  

因此,当您使用Inner Join时,表reports_tbltypesofphoto_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获取记录。