带有concats和Joins的SQL在MySQL 5.1中运行正常,但在5.5中返回NULL


SQL with concats and Joins works ok in MySQL 5.1 but returns NULL on 5.5

我遇到了一个SQL问题,它在我的本地服务器中运行良好,但在我的主机(godaddy)中运行时返回null值。

这是代码:

SELECT 
  a.id, 
  a.title, 
  GROUP_CONCAT( DISTINCT CAST( t.id AS CHAR( 50 ) ) ,  ':', t.name ORDER BY t.id SEPARATOR  ',' ) AS  'tags', 
  GROUP_CONCAT( DISTINCT CAST( i.id AS CHAR( 50 ) ) ,  ':', i.fileName ORDER BY i.id SEPARATOR  ',' ) AS  'images'
FROM 
  articles a
JOIN 
  article_tags ta ON a.id = ta.articleId
JOIN 
  images i ON a.id = i.articleId
JOIN 
  tags t ON ta.tagId = t.id
WHERE 
  a.id = :id

它基本上从文章表中收集数据,并从其他表中获取相关标签和图像。

当我在本地服务器上运行它时,我得到的是:

┌-----┬------------------┬----------------┬------------------------┐
│ id  │ title            │ tags           │ images                 |
├-----┼------------------┼----------------┼------------------------┤
│ 1   │ some article     │ 1:php,2:jquery │ 1:pic.jpg, 2:other.jpg |
└-----┴------------------┴----------------┴------------------------┘ 

相反,当我在我的主机上运行它时:

┌-----┬------------------┬----------------┬------------------------┐
│ id  │ title            │ tags           │ images                 |
├-----┼------------------┼----------------┼------------------------┤
│ 1   │ some article     │ NULL           │ NULL                   |
└-----┴------------------┴----------------┴------------------------┘ 

你知道这里的问题是什么吗?提前感谢

显然这与MySQL版本有关(5.1与5.5)

将"JOIN"替换为"LEFT JOIN"就成功了。

相关文章: