2016-10-19 13 views
1

私はそれぞれのテーブルからcommunity_idとplayer_idをテーブルcommunity_playersに挿入しようとしています。 '社会' と、以下の条件が満たされている 'ユーザー':このINSERT JOIN WHERE SQLステートメントを正常に完了するにはどうすればいいですか?

users.user_email AND communities.admin = '[email protected]' と communities.code = 'HX99F9'

この

users id | user_email | user_password | user_name

:これらの問題の3つのテーブルです

INSERT INTO TABLE community_players (community_id, player_id) FROM TABLE communities JOIN TABLE users ON id WHERE users.user_email = '[email protected]' AND communities.admin = '[email protected]' AND communities.code = 'HX99f9'

....私がこれまで持っているものです

communities id | name | code | admin

community_players community_id | player_id

+0

を、あなたのテーブルの構造を追加していただけますか?私たちはあなたのテーブルのフィールドがどのように呼び出されるかだけを疑うことができます。 –

答えて

1

は次のようになります。

INSERT INTO community_players (community_id, player_id) 
SELECT communities.id, users.id 
FROM communities INNER JOIN users ON communities.admin = users.user_email 
WHERE users.user_email = '[email protected]' 
AND communities.code = 'HX99f9' 
+0

それは次のエラーを生成しています;#1064 - SQL構文にエラーがあります。あなたのMySQLサーバのバージョンに対応するマニュアルをチェックして、正しい構文がテーブルコミュニティの近くで使用されるようにしてください。 JOIN TABLE users on communities.admin = users.user_email WHE '3行目 – RDowns

+0

3行目:FROM TABLEコミュニティ – RDowns

+0

それを修正しました:) – RDowns

1

ようなものになるはずです。テーブルのコミュニティやユーザーのデータベース・スキーマを知らなくても

INSERT INTO community_players (community_id, player_id) (SELECT communities.community_id, users.user_id FROM TABLE communities JOIN TABLE users ON id WHERE users.user_email = '[email protected]' AND communities.admin = '[email protected]' AND communities.code = 'HX99f9' ) `

でも言うのはそのハード、。特に奇妙なのは、JOIN TABLE users ON idの部分です...これは、コミュニティテーブルにユーザーID(このユースケースでは珍しいかもしれません)を保持するフィールドがある場合にのみ機能します。

+0

以下の回答と同じエラー... – RDowns

+0

Ok、データベーススキーマを表示できますか?データベースフィールドがどのように名前付けされているかは誰にも知られていないので、助けがなければ – Jan

関連する問題