mySQL JOIN LEFT无法正常工作?

时间:2011-11-17 13:50:42

标签: mysql sql left-join

我有两个表:推文(包含列tweet_id的a.o.)和引用(包含tweet_id和class_id列)。并非所有推文都可能已分配了class_id。我希望这能够提取包含其class_id的推文的所有信息(如果已设置):

SELECT t.*, r.class_id FROM tweets t 
LEFT JOIN references r ON (t.tweet_id = r.tweet_id) 
ORDER BY t.tweet_id DESC LIMIT 50

然而,我一直收到错误

#1064 - You have an error in your SQL syntax; check the manual that corresponds 
to your MySQL server version for the right syntax to use near 'references r ON 
(t.tweet_id = r.tweet_id) ORDER BY t.tweet_id DESC LIMIT 50' at line 1

我不明白错误的来源。我根据MySQL文档(http://dev.mysql.com/doc/refman/5.0/en/left-join-optimization.html)构建了查询,但我可能遗漏了一些东西?

3 个答案:

答案 0 :(得分:2)

使用此:

SELECT t.*, r.class_id FROM tweets t 
LEFT JOIN `references` r ON (t.tweet_id = r.tweet_id) 
ORDER BY t.tweet_id DESC 
LIMIT 50

References是一个保留字,因此必须用反引号括起来 请查看this link以获取所有保留字的列表。

答案 1 :(得分:0)

REFERENCES是SQL保留字,因此您需要使用引号:

SELECT t.*, r.class_id FROM tweets t 
LEFT JOIN `references` r ON ...

顺便说一句,SO将你的references字体换成蓝色,这应该会给你一个线索。

答案 2 :(得分:0)

引用是MySQL的保留字

相关问题