我有MySQL查询:
SELECT * FROM messages
WHERE msg_id IN(SELECT msg_id FROM messages_tags WHERE tags = 'grusiin')
ORDER BY msg_id LIMIT 5"
它显示错误:
您的SQL语法有错误;检查手册 对应于您的MySQL服务器版本,以便使用正确的语法 在第1行'5'附近
如果我删除“ORDER BY msg_id LIMIT 5”,则没有错误。我做错了什么?我需要用5行限制查询。
答案 0 :(得分:3)
作为一般规则,MySQL在使用JOIN语法而不是IN语法时表现更好。
参见:
试试这个:
SELECT *
FROM messages
JOIN messages_tags tags ON tags.msg_id = messages.msg_id
WHERE tags.tags = 'grusiin'
GROUP BY messages.msg_id
ORDER BY messages.msg_id
LIMIT 5;