我希望有人可以帮助我找出我试图从 Sequel Pro 中运行的 SQL 查询做错了什么。错误消息说
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的“.id INNER JOIN directory_person ON directory_twitter.id = directory_person.id WH”附近使用正确的语法
我写的查询是
SELECT directory_twitter.id, directory_twitter.name, directory_twitter.screen_name,
directory_twitter.followers, directory_group.id, directory_group.title
FROM directory_twitter, directory_group
INNER JOIN directory_person_groups
ON directory_person_groups.person_id = directory_twitter.id,
directory_person_groups.group_id = directory_group.id
INNER JOIN directory_person
ON directory_twitter.id = directory_person.id
WHERE directory_person.appears_in_directory = "1"
我试图让查询返回用户的(directory_twitter.name)
名称、他们的屏幕名称(directory_twitter.screen_name)
、他们的追随者总数(directory_twitter.followers)
以及他们所在的组的名称(directory_group.title)
。不幸的是,我们的表的设置方式,我能想到的将组加入用户的唯一方法是通过INNER JOIN-ing
第三个表(directory_person_groups)
,其中组 ID 和用户 ID 都存在。
最后,我希望此查询返回的唯一用户是我们目录中的用户(WHERE directory_person.appears_in_directory = "1")
。在表中directory_person
,directory_person.id = directory_twitter.id
。
几个小时以来,我一直试图弄清楚我的错误是什么,但我没有取得任何进展。除了我不熟悉的语法错误之外,一切都正确吗?非常感谢任何帮助。谢谢!
编辑:我正在查询的表的所有列都在下面。
directory_twitter
... id
_ person_id
_ id
_ screen_name
_ name
_ followers
_ user_id
_ id
_ person_id
_
directory_group
: id
(不同于directory_twitter.id
), slug
( 的一个 slug title
), title
, screen_name
(该组的 Twitter 句柄,例如 CNN for @cnn)
directory_person_groups
: id
(我不确定如果这个值出现在数据库中的任何其他地方,它与directory_twitter.id
和都不同directory_group.id
), person_id
,group_id
directory_person
: id
(与directory_twitter.id
which 相同directory_twitter.person_id
), title
(此值与 不同directory_group.title
), first_name
, last_name
,appears_in_directory