2011-07-08 7 views
0
どこか、この中に構文エラーがあることを私に言っている

で別の行を作成するために、いくつかの値をコピーし、しかし、各クエリは、私はそれが動作していないことをそれらを結合しようとしていたときにそれがあるだけで、個別に動作します。はMYSQL

INSERT INTO users(username, password , callsign, macroregion, privelages) 
VALUES ((SELECT username, password, callsign, macroregion, privelages 
      FROM users 
      WHERE username = 'someuser' 
      LIMIT 1)) 

私はここに完全に困惑していますか?

答えて

5

用途:

INSERT INTO users(username, password , callsign, macroregion, privelages) 
SELECT username, password, callsign, macroregion, privelages 
    FROM users 
WHERE username = 'someuser' 
LIMIT 1 

あなたがINSERT文の値を指定するSELECTステートメントを使用する場合は、VALUES句を省略します。そして、バッククォート( `)彼らはMySQL reserved wordsを、あるいないすべての時間を持つ列/テーブル名を囲みます。

+0

@RVward:はい、大括弧または 'VALUES'節は必要ありません。これは私が知っているすべてのデータベース(Oracle、MySQL、SQL Serverなど)で一貫しています。 –

+0

申し訳ありませんが、それは私が前に見落とさだけで何かだったと思います。ご協力いただきありがとうございます。 –

+0

@RVward:あなたはこの答えを意味するが、実際にあなたの問題を解決していませんか? –

1

あなたはこのためInsert-Selectを使用することができます。

INSERT INTO users(username, password , callsign, macroregion, privelages) 
SELECT username, password, callsign, macroregion, privelages 
     FROM users 
     WHERE username = 'someuser' 
     LIMIT 1