Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 左连接,ISNULL,IFNULL不起作用_Sql_Left Join_Isnull - Fatal编程技术网

Sql 左连接,ISNULL,IFNULL不起作用

Sql 左连接,ISNULL,IFNULL不起作用,sql,left-join,isnull,Sql,Left Join,Isnull,假设tblflash中有10行,tblcount中有10行和5行。 显示的记录仅显示在5行中。我想显示所有fname,不重复,如果null设置为0 有什么问题吗?您的WHERE-tblcount.SID='.$\u会话['SID'.'正在使查询充当内部联接-您需要添加,或者tblcount.SID为NULL其他5行的tblcount中没有SID数据您的WHERE条件应用于联接的结果,而不是特别应用于tblcount行。当两个表之间不匹配时,join在所有tblcount列中返回null。因此,N

假设tblflash中有10行,tblcount中有10行和5行。 显示的记录仅显示在5行中。我想显示所有fname,不重复,如果null设置为0

有什么问题吗?

您的WHERE-tblcount.SID='.$\u会话['SID'.'正在使查询充当内部联接-您需要添加,或者tblcount.SID为NULL

其他5行的tblcount中没有SID数据

您的WHERE条件应用于联接的结果,而不是特别应用于tblcount行。当两个表之间不匹配时,join在所有tblcount列中返回null。因此,NULL='whatever'的计算结果不为true,并且不返回该行

add或tblcount.SID对于WHERE as为NULL,或者将WHERE条件作为ON子句的一部分,如下所示:

CREATE TABLE IF NOT EXISTS `tblflash` (
  `FID` int(11) NOT NULL AUTO_INCREMENT,
  `fname` text COLLATE utf8_unicode_ci NOT NULL,
  PRIMARY KEY (`FID`)
) 

CREATE TABLE IF NOT EXISTS `tblcount` (
  `ID` int(50) NOT NULL AUTO_INCREMENT,
  `SID` int(50) NOT NULL,
  `FID` int(11) NOT NULL,
  `sDateTime` datetime NOT NULL,
  `elaspedTime` int(11) NOT NULL,
  PRIMARY KEY (`ID`)
)


$sqldate1 =
    "SELECT distinct tblflash.FID, tblflash.fname, IFNULL(sum(tblcount.elaspedTime),0)
    FROM tblflash 
    left outer JOIN tblcount 
    ON tblflash.FID = tblcount.FID 
    WHERE tblcount.SID='".$_SESSION['SID']."'
    ORDER BY tblflash.FID"; 
$sqldate1 =
    "SELECT distinct tblflash.FID, tblflash.fname, IFNULL(sum(tblcount.elaspedTime),0)
    FROM tblflash 
    left outer JOIN tblcount 
    ON tblflash.FID = tblcount.FID 
    AND tblcount.SID='".$_SESSION['SID']."'
    ORDER BY tblflash.FID";