2016-09-15 13 views
0

このコードが機能しない理由はわかりません。構文エラーが発生しますが、私の知る限り、これはうまくいくはずです。誰かが私が間違っていることを私に説明することはできますか?SQLの関連エンティティで構文エラーが発生しました

insert into playerteam(playerId, teamId) select id from player where 
    player.firstname='John' and select id from team where team.`name`='Swim Team'; 
+2

あなたはinsert文でサブクエリを使用する方法を調べるべきです - あなたのクエリフォーマットは完全に間違っています... – Alex

+0

私はどこが間違っていたか、正しくネストされておらず、where節を通してクエリを実行していました。私はまだこれに新しいですが、フィードバックに感謝します。 – remedy

答えて

2

以下に示すよう使用:

INSERT INTO playerteam(playerId, teamId) 
SELECT (SELECT id FROM player WHERE player.firstname='John'), 
    (SELECT id FROM team WHERE team.`name`='Swim Team'); 
+0

フィードバックをいただきありがとうございました。私はwhere句に注意を払っていませんでした。まだここの奴隷XD – remedy

1

これは:

player.firstname='John' and select id from team where team.`name`='Swim Team'; 
        ^^^^^^^^^ 

あなただけwhere句として全体のクエリ結果を返すことができません。あなたは何とかその結果をテストしなければなりません。

... AND EXISTS select ... 
     ^^^^ 
+0

@Surazのソリューションは実際に私のために働いた、フィードバックのおかげで、私も存在を見てみましょう! – remedy

1

あなたselectクエリはあなたがselect ... AND select ...を使用して、2つのクエリを組み合わせることはできませんcorrect-されていない、あなたが(例えばjoin

を使用する必要がありますが、 2つのテーブルを接続するために、結合のON部分をここに追加する必要があります)。

insert into playerteam(playerId, teamId) select player.id as playerId, 
    team.id as teamId from player inner join team on {ADD HERE COLUMNS TO JOIN BY} 
where player.firstname='John' and team.`name`='Swim Team'; 
+0

うん、ありがとう、私はそれを働かせた。私は、このソリューションは、私がしなければならないことにはもう少し作業が必要だと思っていますが、フィードバックに感謝しています。 – remedy

関連する問題