Sequel Pro 内から実行しようとしている SQL クエリで何が間違っているかを誰かが理解するのを手伝ってくれることを望んでいました。エラーメッセージは言う
SQL 構文にエラーがあります。1 行目の '.id INNER JOIN directory_person ON directory_twitter.id = directory_person.id WH' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。
そして、私が書いたクエリは
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)
。残念ながら、テーブルの設定方法では、グループをユーザーに参加させる唯一の方法は、グループ ID とユーザー ID の両方が存在INNER JOIN-ing
する 3 番目のテーブルを使用することです。(directory_person_groups)
最後に、このクエリで返してもらいたい唯一のユーザーは、私たちのディレクトリにいるユーザーです(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
( のスラッグtitle
), title
, screen_name
(グループの Twitter ハンドル、たとえば @cnn の CNN)
directory_person_groups
: id
(データベースのどこかにこの値が表示されているかどうかはわかりません。 と の両方directory_twitter.id
とは異なりますdirectory_group.id
), person_id
,group_id
directory_person
: id
( と同じ とdirectory_twitter.id
同じdirectory_twitter.person_id
), title
( この値は とは異なるdirectory_group.title
), first_name
, last_name
,appears_in_directory