J'ai une requête qui insère en utilisant un select:
INSERT INTO courses (name, location, gid)
SELECT name, location, gid
FROM courses
WHERE cid = $cid
Est-il possible de sélectionner uniquement "nom, emplacement" pour l'insertion et de définir gid sur un autre élément de la requête?
Oui, absolument, mais vérifiez votre syntaxe.
INSERT INTO courses (name, location, gid)
SELECT name, location, 1
FROM courses
WHERE cid = 2
Vous pouvez mettre une constante du même type que gid
à sa place, pas seulement 1, bien sûr. Et, je viens de composer la valeur cid
.
Oui, ça l'est. Tu peux écrire :
INSERT INTO courses (name, location, gid)
SELECT name, location, 'whatever you want'
FROM courses
WHERE cid = $ci
ou vous pouvez obtenir des valeurs d'une autre jointure de la sélection ...
Syntaxe correcte: l'orthographe choisie était incorrecte
INSERT INTO courses (name, location, gid)
SELECT name, location, 'whatever you want'
FROM courses
WHERE cid = $ci
Bien sûr, que voulez-vous utiliser pour le gid? une valeur statique, PHP var, ...
Une valeur statique de 1234 pourrait ressembler à:
INSERT INTO courses (name, location, gid)
SELECT name, location, 1234
FROM courses
WHERE cid = $cid
Je pense que votre instruction INSERT est fausse, voir la syntaxe correcte: http://dev.mysql.com/doc/refman/5.1/en/insert.html
modifier: comme l'a déjà souligné Andrew ...