2017-03-14 7 views
-1

SQL結合の構文を理解できません。これは私の下の質問です。複数の内部結合エイリアスが動作しない

SELECT users.family_name, users.given_name, users.bio, votes_stories.*, stories.* \ 
    FROM stories \ 
    INNER JOIN users \ 
     ON users.id=stories.author_id \ 
    INNER JOIN votes_stories.type AS vote_type \ // <--- error occurs here. 
     ON votes_stories.story_id=stories.id \ 
     AND votes_stories.user_id=$1 

エラー:エラー:

SELECT users.family_name, users.given_name, users.bio, vote_type.*, stories.* 
FROM stories 
JOIN users ON users.id=stories.author_id 
JOIN vote_type.type AS vote_type ON vote_type.story_id=stories.id AND vote_type.user_id=$1 
+0

テーブルをエイリアスする場合は、on句でそのエイリアスも使用する必要があります。 –

+0

また 'votes_stories.type'はテーブルではなくカラムです。おそらくあなたは 'votes_stories'に参加するつもりだったでしょうか? – bobince

答えて

1

私は思う:関係 "votes_stories.typeは"

私はあなたが行くvote_stories.typeここ

0

vote_typeに名前を変更したいのですが存在しません。あなたは次のようなものを考えています:

SELECT u.family_name, u.given_name, u.bio, vs.type AS vote_type 
FROM stories s INNER JOIN 
    users u 
    ON u.id = s.author_id INNER JOIN 
    votes_stories vs 
    ON vs.story_id = s.id AND 
     vs.user_id = $1; 

選択する列はSELECTです。

関連する問題