2013-07-09 77 views
2

早些時候,我們曾經使用的MySQL版本5.5.27,並與下面的查詢mysql的5.6.12 GROUP_CONCAT與內部連接問題

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了。相同的查詢正在返回所有列爲空的行。

請幫助?

回答

2

下面的鏈接應該是有幫助的

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

+0

@Amar或user2298894可以請您詳細說明該鏈接的哪一部分與問題相關ñ。請引用解釋此問題的內容部分(可以[編輯](http://stackoverflow.com/posts/17548303/edit)答案)。 (強烈建議不要鏈接回答) – Rik

2

那是否就真的在5.5.27工作?

  • INNER JOIN:返回的所有行的時候有兩個表

你可以改變INNER JOIN在LEFT JOIN的

  • 留在至少一個匹配JOIN:從返回所有行左表和
+0

它確實有效,即使我很驚訝。現在要改變這麼多的生產將是非常繁重的任務和耗時。 – Amar

+0

也許舊版本因爲沒有選擇字段而剝離了'INNER JOIN StudentBatchTxn'。但是根據SQL標準,INNER JOIN只應該在兩個表中記錄條目。 (所以它固定在最新版本:) – Rik

+0

Thanx @Rik爲您提供幫助 – Amar