web-dev-qa-db-ja.com

SELECTを使ったINSERT

Selectを使って挿入するクエリがあります。

INSERT INTO courses (name, location, gid) 
            SELECT name, location, gid 
              FROM courses 
             WHERE cid = $cid

挿入のために "名前、場所"だけを選択し、クエリでgidを他の何かに設定することは可能ですか?

253
Kyle

はい、もちろんですが、構文を確認してください。

INSERT INTO courses (name, location, gid)
SELECT name, location, 1
FROM   courses
WHERE  cid = 2

もちろんその代わりにgidと同じ型の定数を置くことができます。1だけではありません。そして、私はcidの値を作りました。

495
Andrew

はい、そうです。あなたは書ける :

INSERT INTO courses (name, location, gid) 
SELECT name, location, 'whatever you want' 
FROM courses 
WHERE cid = $ci

または、selectの別の結合から値を取得することができます。

27

正しい構文:選択スペルが間違っていた

INSERT INTO courses (name, location, gid)
SELECT name, location, 'whatever you want' 
FROM courses 
WHERE cid = $ci 
7
RolandoMySQLDBA

確かに、あなたはgidに何を使いたいですか?静的な値、PHP var、...

1234の静的な値は、次のようになります。

INSERT INTO courses (name, location, gid)
SELECT name, location, 1234
FROM courses
WHERE cid = $cid
5
klennepette

INSERTステートメントが間違っていると思います。正しい構文を参照してください。 http://dev.mysql.com/doc/refman/5.1/en/insert.html

編集:アンドリューがすでに指摘したように...

1
Tobias