我有两个表:tweets(包含列 tweet_id)和引用(包含列 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)构建了查询,但我可能遗漏了一些东西?
最佳答案
使用这个:
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获得所有保留字的列表。
关于mySQL JOIN LEFT 不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8168183/