我遇到了一个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"就成功了。