我有两个表:推文(包含列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)构建了查询,但我可能遗漏了一些东西?
答案 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的保留字