Flux rss
Collection CommentCaMarche.net
Rechercher : dans
Par : Pertinence Date Nom d'utilisateur
Statut : Non résolu

Insert into select (from plusieurs tables)

darkness2207, le vendredi 28 septembre 2007 à 16:41:59
Bonjour,

je voudrais faire des insertions dans une table TABLE1 à partir de données issues de 2 autres tables, TABLE2 et TABLE3.

j'aimerais faire fonctionner cela en 1 seule requête du type

insert into TABLE1 (id1,lib1,titre1)
select id2,lib2,titre3
from TABLE,TABLE3
where id2=id3

j'ai fait un essai et cela m'a bien inséré tous les couple TABLE2/TABLE3 dans TABLE1.

je me demande cependant si cela est fiable ?
est-ce qu'il n'y a aucun risque de bug ?

merci d'avance pour les futures réponses
Répondre à darkness2207  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
clara, le vendredi 28 septembre 2007 à 17:26:26
c'est normal que cela s'enregistre dans les deux tables.verifier ces trables ont des liens et conservent les clés.
courage
Répondre à clara

2


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
darkness2207, le vendredi 28 septembre 2007 à 17:41:39
merci pour ta réponse clara,

je me suis trompé dans la requete que j'ai mentionné (oups)
je recommence depuis le début:

peut-on être sûr qu'une requête de cette sorte (ci-dessous) renvoie bien chaque couple possible dans TABLE ?

insert into TABLE1 (lib2,lib3)
select lib2,lib3
from TABLE2,TABLE3

exemple:

on a les données suivantes:

table PERSONNE (idpers / nompers)
1 / marc
2 / arnaud
3 / antoine

table LIEU (idlieu / nomlieu)
1 / restaurant
2 / cinéma
3 / café

on execute alors la requete suivante:

insert into SORTIES (pers,lieu)
select nomlieu,nompers
from PERSONNE, LIEU

et on obtient le résultat

table SORTIES (pers/ lieu)
marc / restaurant
marc / cinéma
marc / café
arnaud/ restaurant
arnaud/ cinéma
arnaud/ café
antoine/ restaurant
antoine/ cinéma
antoine/ café


peut-on être sûr de la fiabilité d'une telle requête (qu'elle ne renvoie pas de doublon, qu'elle renvoie bien chaque couple 1 seule fois...)?

merci d'avance
Répondre à darkness2207

4


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
 Marc Moog, le vendredi 25 juillet 2008 à 01:18:04
Il n'y a aucun besoin de liens entre les tables. Attention la Requête correcte est :
INSERT INTO SORTIES ( pers, lieu )
SELECT nompers, nomlieu
FROM PERSONNE, LIEU;
une clé sur les deux champs de la table SORTIES est souhaitable
Répondre à Marc Moog

3


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Posotaz, le vendredi 28 septembre 2007 à 23:41:09
Salut Darkness,

C'est une question fort subtile parce qu'à partir du moment on l'où implique deux tables dans une requête Select on s'attend à avoir une jointure (n tables = n-1 jointures) entre ces deux tables.

Malgré tout je ne vois rien qui puisse rendre cette requête non fiable à moins que tes tables, dès le départ contiennent des doublons (dans quel cas tu feras un select distinct).
Répondre à Posotaz
SELECT * from table WHERE test1 AND test2 ? (Résolu) Bonjour, Je cherche à écrire une requête SQL avec un AND dans la clause WHERE et je bloque... $sql = "select * from users where email='".$email."'; // $sql = "select * from users where email='".$email."' AND... www.commentcamarche.net/forum/affich-5384184-select-from-table-where-test1-and-test2
Export table SQLserver (Résolu) Bonjour, je travaille sur SQL Server.J'ai deux bases de données. Je veux transférer certaines lignes d'une table de ma bd1 dans une table identique de la bd2 puis je faire un insert into (select). Mais comment faire référence aux bases de... www.commentcamarche.net/forum/affich-2702450-export-table-sqlserver
[PhP/Mysql] résultat d'1 requete en array (Résolu) Bonjour, J'ai un souci. Je cherche a mettre le résultat d'une requete mysql dans un tableau. j'ai fait ma requete SELECT * FROM table. Pour la récupérer j'ai tenté 2 méthodes 1 $var= mysql_fetch_array($cherche,MYSQL_NUM); 2... www.commentcamarche.net/forum/affich-2567322-php-mysql-resultat-d-1-requete-en-array
MySQL - SELECT ... YESTERDAY (hier)Il vous suffit d'utiliser la syntaxe suivante : SELECT * FROM maTable WHERE champ_date = DATE_SUB(CONCAT(CURDATE(), ' 00:00:00'), INTERVAL 1 DAY) De la même façon pour sélectionner les enregistrements d'avant-hier : SELECT * FROM maTable... www.commentcamarche.net/faq/sujet-15019-mysql-select-yesterday-hier
[SQL] selection de chaines avec des blancs (Résolu)Bonjour, Comment fait on pour selectionner des chaine de caractere contenant des blanc comme: "Du pont" ? un SELECT * FROM table WHERE nom = 'Du pont' ne donne rien. www.commentcamarche.net/forum/affich-3207168-sql-selection-de-chaines-avec-des-blancs
Top 5 mensuelle en PHP/sql (Résolu)Bonjour, J'aimerai savoir comment faire un top 5 mensuelle en php. Voilà mon code : $reponse = mysql_query("SELECT * FROM table ORDER BY vote DESC LIMIT 0,5"); while ($donnees = mysql_fetch_array($reponse) ) Je débute en PHP/sql et je ne sais pas... www.commentcamarche.net/forum/affich-9343576-top-5-mensuelle-en-php-sql
Requete access (Résolu)Bonjour, je souhaite savoir comment on fait pour compter le nombre de résultat qu'une requete (faite en vb) contient. En fair j'ai une requete dans un code Vb du style: sql=Select * From Table1 Where Champ1="Win" et j'aimerais savoir... www.commentcamarche.net/forum/affich-6952978-requete-access