Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

MYSQL : insérer des données dans une table provenant d'une autre table

6 réponses
Avatar
messian_nospam
Bonjour...

Je cherche à insérer dans une table des données provenant d'une autre
table.

table1 : id,type

table2: id, id_site

id est le numéro d'une information, type peut prendre comme valeur 0,1
ou 2, id_site est le numéro d'un site web associé à l'information

Je dois entrer des informations dans la table 2 à partir de la table 1
en faisant varier la valeur de id_site en fonction de la valeurs de
type. Je ne sais pas si je suis très clair.

Je peux avoir une requête MySQL du genre :

INSERT INTO table2 (id,id_site) VALUES (SELECT id FROM table1 WHERE
type=1 ,2) ???



--
Un moyen de garde pour vos enfants ?
http://www.easynounou.com

6 réponses

Avatar
messian_nospam
JF Messian wrote:

Je peux avoir une requête MySQL du genre :

INSERT INTO table2 (id,id_site) VALUES (SELECT id FROM table1 WHERE
type=1 ,2) ???



Marche pas.

Après avoir lu :
http://dev.mysql.com/doc/refman/5.0/fr/insert-select.html

J'ai essayé ça : INSERT INTO Sites_revue_presse (presse_id,id_site)
SELECT presse_id FROM revue_presse WHERE type=1,2

sans succès...

Mon problème c'est que la valeurs de id_site doit être fixe et ne pas
être récupérée dans l'autre table...

--
Un moyen de garde pour vos enfants ?
http://www.easynounou.com
Avatar
messian_nospam
JF Messian wrote:

Bonjour...

Je cherche à insérer dans une table des données provenant d'une autre
table.

table1 : id,type

table2: id, id_site

id est le numéro d'une information, type peut prendre comme valeur 0,1
ou 2, id_site est le numéro d'un site web associé à l'information

Je dois entrer des informations dans la table 2 à partir de la table 1
en faisant varier la valeur de id_site en fonction de la valeurs de
type. Je ne sais pas si je suis très clair.

Je peux avoir une requête MySQL du genre :

INSERT INTO table2 (id,id_site) VALUES (SELECT id FROM table1 WHERE
type=1 ,2) ???




J'ai trouvé une solution avec une table temporaire :

CREATE TEMPORARY TABLE table_temp (
presse_id INT(11) NOT NULL,
id_site INT(5) DEFAULT '2' NOT NULL
);

INSERT INTO table_temp (presse_id) SELECT presse_id FROM revue_presse
WHERE type=1;

INSERT INTO Sites_revue_presse (presse_id,id_site) SELECT
presse_id,id_site FROM table_temp;

DROP TABLE table_temp;

En espérant que cela pourra servir à quelqu'un...


--
Un moyen de garde pour vos enfants ?
http://www.easynounou.com
Avatar
Joe
JF Messian a écrit :
JF Messian wrote:

Bonjour...

Je cherche à insérer dans une table des données provenant d'une autre
table.

table1 : id,type

table2: id, id_site

id est le numéro d'une information, type peut prendre comme valeur 0,1
ou 2, id_site est le numéro d'un site web associé à l'information

Je dois entrer des informations dans la table 2 à partir de la table 1
en faisant varier la valeur de id_site en fonction de la valeurs de
type. Je ne sais pas si je suis très clair.

Je peux avoir une requête MySQL du genre :

INSERT INTO table2 (id,id_site) VALUES (SELECT id FROM table1 WHERE
type=1 ,2) ???




J'ai trouvé une solution avec une table temporaire :

CREATE TEMPORARY TABLE table_temp (
presse_id INT(11) NOT NULL,
id_site INT(5) DEFAULT '2' NOT NULL
);

INSERT INTO table_temp (presse_id) SELECT presse_id FROM revue_presse
WHERE type=1;

INSERT INTO Sites_revue_presse (presse_id,id_site) SELECT
presse_id,id_site FROM table_temp;

DROP TABLE table_temp;

En espérant que cela pourra servir à quelqu'un...




ben non, ça ne va servir à rien !
pourquoi ne pas insérer directement dans ta table destinataire ?
surtout que ton id_site n'est pas initialisé donc bonjour les dégâts
Avatar
messian_nospam
Joe wrote:


> J'ai trouvé une solution avec une table temporaire :
>
> CREATE TEMPORARY TABLE table_temp (
> presse_id INT(11) NOT NULL,
> id_site INT(5) DEFAULT '2' NOT NULL
> );
>
> INSERT INTO table_temp (presse_id) SELECT presse_id FROM revue_presse
> WHERE type=1;
>
> INSERT INTO Sites_revue_presse (presse_id,id_site) SELECT
> presse_id,id_site FROM table_temp;
>
> DROP TABLE table_temp;
>
> En espérant que cela pourra servir à quelqu'un...
>
>
ben non, ça ne va servir à rien !
pourquoi ne pas insérer directement dans ta table destinataire ?
surtout que ton id_site n'est pas initialisé donc bonjour les dégâts



id_site INT(5) DEFAULT '2' NOT NULL

donc ça marche... si tu trouves comment faire en insérant directement je
suis preneur...


--
Un moyen de garde pour vos enfants ?
http://www.easynounou.com
Avatar
Joe
JF Messian a écrit :
Joe wrote:


J'ai trouvé une solution avec une table temporaire :

CREATE TEMPORARY TABLE table_temp (
presse_id INT(11) NOT NULL,
id_site INT(5) DEFAULT '2' NOT NULL
);

INSERT INTO table_temp (presse_id) SELECT presse_id FROM revue_presse
WHERE type=1;

INSERT INTO Sites_revue_presse (presse_id,id_site) SELECT
presse_id,id_site FROM table_temp;

DROP TABLE table_temp;

En espérant que cela pourra servir à quelqu'un...




ben non, ça ne va servir à rien !
pourquoi ne pas insérer directement dans ta table destinataire ?
surtout que ton id_site n'est pas initialisé donc bonjour les dégâts



id_site INT(5) DEFAULT '2' NOT NULL

donc ça marche... si tu trouves comment faire en insérant directement je
suis preneur...





INSERT into Site_revue_presse SELECT presse_id,'2' FROM ... WHERE ...
Avatar
messian_nospam
Joe wrote:


INSERT into Site_revue_presse SELECT presse_id,'2' FROM ... WHERE ...



YES ! Merci...

--
Un moyen de garde pour vos enfants ?
http://www.easynounou.com