MYSQL-内部连接语法错误

MYSQL-内部连接语法错误,mysql,wordpress,join,Mysql,Wordpress,Join,是的,有点困惑。我的wordpress安装中有很多表,它们的名称和字段名都非常具有描述性。所以我认为你不需要任何解释。我这里的问题实际上是我正在尝试的第四个内部连接。查询很简单: SELECT * FROM wp_posts AS post INNER JOIN wp_postmeta AS postmeta ON post.ID = postmeta.post_id INNER JOIN wp_game AS game ON post.ID = game.post_id

是的,有点困惑。我的wordpress安装中有很多表,它们的名称和字段名都非常具有描述性。所以我认为你不需要任何解释。我这里的问题实际上是我正在尝试的第四个内部连接。查询很简单:

SELECT * 
FROM wp_posts AS post 
    INNER JOIN wp_postmeta AS postmeta ON post.ID = postmeta.post_id 
    INNER JOIN wp_game AS game ON post.ID = game.post_id
    INNER JOIN wp_game_platform AS platform ON game.game_id = platform.GameId
    INNER JOIN wp_platform_release AS release ON release.PlatformID = platform.ID
WHERE post.post_type = 'games' AND postmeta.meta_key = 'post_views_count' AND platform.Status = 0 AND release.ReleaseDate > 1435917562
ORDER BY postmeta.meta_value DESC, game.game_id
LIMIT 100
这应该是所有尚未发布的游戏平台(Xbox版本、PC版游戏)的列表,并根据它们的页面访问量对它们进行排序。正如你所看到的,页面访问被存储为post meta,所以我在wp_posteta上加入了一个。上面的查询给出了以下语法错误:

失败:您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 近“release ON release.PlatformID=PlatformID,其中post.post\u类型 =第1行的“游戏”和“游戏”

这清楚地表明查询中存在语法错误,我看不到。有趣的是,如果我运行以下查询,它将返回预期结果(所有游戏[发布或未发布]按访问后排序):

起初我认为存在连接限制,但经过研究,我发现限制超过60个表,而不是5个。你看到我看不到的东西了吗


谢谢

release是一个保留字-请尝试将别名更改为其他名称。请看:

这是我第一次想到这个问题,但即使把它放在[]里,我也会犯同样的错误。我将完全更改名称,然后重试。tnxyeah,更改别名解决了我的问题。我确信在[]中放入保留字会使它们可用,但似乎不是我错了,就是关于其他tsql处理器,如Microsoft SQL。使用反引号将适用于MySQL。我更喜欢避免使用保留字——只是为了避免在MySQL发出像您一样的不太具体的错误消息时盯着看似正确的SQL。
SELECT * 
FROM wp_posts AS post 
    INNER JOIN wp_postmeta AS postmeta ON post.ID = postmeta.post_id 
    INNER JOIN wp_game AS game ON post.ID = game.post_id
    INNER JOIN wp_game_platform AS platform ON game.game_id = platform.GameId
WHERE post.post_type = 'games' AND postmeta.meta_key = 'post_views_count' AND platform.Status = 0
ORDER BY postmeta.meta_value DESC, game.game_id
LIMIT 100