2

之前我们使用 Mysql 版本 5.5.27 并使用以下查询

 SELECT S.StudentId, 
        SED.StudentEnrollmentDetailsId,
        FirstName, MiddleName, LastName, Address, PermanentAddress,
        GROUP_CONCAT(B.BatchName ORDER BY B.BatchId,B.IsVirtualBatch DESC) AS AllBatch  
 FROM Student S 
 INNER JOIN StudentEnrollmentDetails SED ON SED.StudentId = S.StudentId
 INNER JOIN StudentBatchTxn SBT ON SBT.StudentId = S.StudentId  
 WHERE SED.StudentId = ?
 AND SED.StudentEnrollmentDetailsId = ? AND S.CompanyId = ?

此查询用于正确运行学生是否存在于 StudentBatchTxn 中。

但是现在我们已经升级到了mysql 5.6.12。相同的查询返回所有列为空的行。

请帮忙?

4

2 回答 2

2

下面的链接应该会有所帮助

http://dev.mysql.com/doc/refman/5.6/en/bugs.html

于 2013-07-09T12:35:09.193 回答
2

这在 5.5.27 中真的有效吗?

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

你能改变 LEFT JOIN 中的 INNER JOIN

  • LEFT JOIN:从左表返回所有行,从右表返回匹配的行
于 2013-07-09T12:36:03.980 回答