Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/229.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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
PHP MySQL缺少行(bug?)_Php_Mysql - Fatal编程技术网

PHP MySQL缺少行(bug?)

PHP MySQL缺少行(bug?),php,mysql,Php,Mysql,从应答中添加另外两个连接将使查询不返回任何内容 必须先运行子选择联接,然后再运行其他两个表的联接。然后,在与其他表的两个联接中,必须显式引用所需的表。所以在我的例子中,主选择是“tblname1 v”,然后次选择是“r”。然后您引用v.ID=othertbl.ID请尝试与左连接建立关系: LEFT JOIN (SELECT tblreview.AssistantIdentNumber, tblreview.AssistId, tblreview.Status, tblreview.Manag

从应答中添加另外两个连接将使查询不返回任何内容


必须先运行子选择联接,然后再运行其他两个表的联接。然后,在与其他表的两个联接中,必须显式引用所需的表。所以在我的例子中,主选择是“tblname1 v”,然后次选择是“r”。然后您引用v.ID=othertbl.ID

请尝试与
左连接建立关系

LEFT JOIN 
(SELECT tblreview.AssistantIdentNumber,
tblreview.AssistId,
tblreview.Status, 
tblreview.ManagerId AS RevID, 
tblreviewer.Forename AS RevForename, 
tblreviewer.Surname AS RevSurname 
FROM tblreview, tblreviewer 
WHERE tblreview.ReviewerId = tblreviewer.ReviewerId 
AND tblreview.Status = 'Complete' 
AND IsNull(tblreview.Validation)) r
选择
tblreview.assistantItemNumber,
tblreview.AssistID,
tblreview.状态,
tblreview.ReviewerId为RevID,
tblAssistant.Forename作为RevForename,
t lassistant.姓为revlasname,
tblreview.验证
来自tblreview
左连接tblreviewer
在tblreview.ReviewerID=tblreviewer.ReviewerID上
左连接tblAssistant
在tblAssistant.IdentNumber=tblreview.AssistantIdentNumber上
哪里
tblreview.Validation='Y'
和t lassistant。测试“Y”
年份(STR_TO_DATE(tblAssistant.DateDied,'%d/%m/%Y'))='2014'
月份(STR_TO_DATE(tblAssistant.DateDied,'%d/%m/%Y'))='9';

使用
左连接
而不是
WHERE
。谢谢。工作完美。你能解释一下为什么它需要这个吗?请阅读这篇文章了解“where和join关系之间的区别”:谢谢。你能解释一下第三个连接是如何与其他所有连接集成的吗?
SELECT 
  tblreview.AssistantIdentNumber, 
  tblreview.AssistID,
  tblreview.Status,
  tblreview.ReviewerId AS RevID,
  tblAssistant.Forename AS RevForename,
  tblAssistant.Surname AS RevSurname,
  tblreview.Validation 
FROM tblreview, tblreviewer, tblAssistant
WHERE
  tblreview.ReviewerID = tblreviewer.ReviewerID
  AND tblreview.Validation = 'Y'
  AND tblAssistant.Test <> 'Y'
  AND tblAssistant.IdentNumber = tblreview.AssistantIdentNumber
  AND YEAR(STR_TO_DATE(tblAssistant.DateDied,'%d/%m/%Y')) = '2014'
  AND MONTH(STR_TO_DATE(tblAssistant.DateDied,'%d/%m/%Y')) = '9';
for($i=0;$i<$rowCount;$i++) 
{
    $row[$i]= mysql_fetch_array($ValidationPart);
    // writes out HTML table
}

for($i=0;$i<$rowCount;$i++) 
{
    $row[$i]= mysql_fetch_array($ValidationPart);
    if (empty($row[$i]['IdentNumber']))
    { 
        //do nothing
    } else {
        // Prints out HTML table
    }
}
LEFT JOIN 
(SELECT tblreview.AssistantIdentNumber,
tblreview.AssistId,
tblreview.Status, 
tblreview.ManagerId AS RevID, 
tblreviewer.Forename AS RevForename, 
tblreviewer.Surname AS RevSurname 
FROM tblreview, tblreviewer 
WHERE tblreview.ReviewerId = tblreviewer.ReviewerId 
AND tblreview.Status = 'Complete' 
AND IsNull(tblreview.Validation)) r
SELECT 
  tblreview.AssistantIdentNumber, 
  tblreview.AssistID, 
  tblreview.Status, 
  tblreview.ReviewerId AS RevID, 
  tblAssistant.Forename AS RevForename, 
  tblAssistant.Surname AS RevSurname, 
  tblreview.Validation 
FROM tblreview
LEFT JOIN tblreviewer
  ON tblreview.ReviewerID = tblreviewer.ReviewerID
LEFT JOIN tblAssistant 
  ON tblAssistant.IdentNumber = tblreview.AssistantIdentNumber 
WHERE 
  tblreview.Validation = 'Y'
  AND tblAssistant.Test <> 'Y' 
  AND YEAR(STR_TO_DATE(tblAssistant.DateDied,'%d/%m/%Y')) = '2014' 
  AND MONTH(STR_TO_DATE(tblAssistant.DateDied,'%d/%m/%Y')) = '9';