2016-07-23 15 views
2

カラム(ID、ユーザ名、パスワード)を持つユーザとカラム(user_id、失敗、時間)を持つuser_failedの2つのテーブルがあります。ユーザー名だけを使用してuser_failedテーブルに挿入する方法はありますか?このコードを試してみましたが失敗しました:mysqlでSELECTを使用したINSERT値

INSERT INTO `login_attempts`(`user_id`, `time`, `failed`) 
VALUES (SELECT user_id FROM users WHERE username = 'pokemon','',3) 

答えて

3

いくつかの理由でSQLクエリが正しくありません。

クエリが正しく解釈された場合は、次のように動作するはずです。 SELECTからテーブルにINGの

INSERT INTO `login_attempts`(`user_id`, `time`, `failed`) 
SELECT id, '', 3 FROM users WHERE username = 'pokemon' 

INSERTVALUES (...)を必要としません。ここでは、VALUES (...)を使用する方法の例を示します。また、

INSERT INTO `login_attempts`(`user_id`, `time`, `failed`) 
VALUES (1, '', 3) 

、あなたのサブクエリSELECT user_id FROM users WHERE username = 'pokemon','',3WHERE句が無効です。具体的には、私が想定している'',3の部分は、timefailedに挿入したい値です。

+0

それは私がこのエラー#1054を得ることができないです - ああ、それは仕事だ – Ying

+0

「フィールドリスト」に不明な列「のuser_id」を、それはです私のusersテーブルであるため、私はちょうどIDにuser_idを変更idはuser_idではありません。ありがとう – Ying

0

これはうまくいくでしょう...あなたは前と後の中括弧を追加する必要があります。

INSERT INTO `login_attempts`(`user_id`, `time`, `failed`) VALUES ((SELECT user_id FROM users WHERE username = 'pokemon'),'',3)

関連する問題