Problème avec une requête sql
sudmeteo
-
sudmeteo -
sudmeteo -
Bonjour,
J'aimerai faire une requête SQL qui me permet de récupérer des données dans deux tables différentes.
Jusque la c'est compréhensible :D
Voila mes deux tables:
UGRB
LAT | LON |ECH |UGRB
45.0 | 0.0 | 3 | 0.9
45.5 | 0.0 | 3 | 0.5
45.0 | 0.5 | 3 | 1.2
45.5 | 0.5 | 3 | 3.4
45.0 | 0.0 | 6 | 0.9
45.5 | 0.0 | 6 | 0.5
45.0 | 0.5 | 6 | 1.2
45.5 | 0.5 | 6 | 3.4
et VGRB
LAT | LON |ECH |VGRB
45.0 | 0.0 | 3 | -0.2
45.5 | 0.0 | 3 | -4.9
45.0 | 0.5 | 3 | 0.0
45.5 | 0.5 | 3 | 0.1
45.0 | 0.0 | 6 | -0.2
45.5 | 0.0 | 6 | -4.9
45.0 | 0.5 | 6 | 0.0
45.5 | 0.5 | 6 | 0.1
Voici donc un vulgaire exemple de la configuration de ces deux tables car en réalités, elles contiennent 19 200 lignes chacune :)
Donc voici ma question,
Comment créer une table nommée vent et qui ressemblerai a ceci:
LAT | LON |ECH |UGRB |VGRB
45.0 | 0.0 | 3 | 0.9 | -0.2
45.5 | 0.0 | 3 | 0.5 | -4.9
45.0 | 0.5 | 3 | 1.2 | 0.0
45.5 | 0.5 | 3 | 3.4 | 0.1
45.0 | 0.0 | 6 | 0.9 | -0.2
45.5 | 0.0 | 6 | 0.5 | -4.9
45.0 | 0.5 | 6 | 1.2 | 0.0
45.5 | 0.5 | 6 | 3.4 | 0.1
Bon j'ai dejà une petite idée:
J'exécute ces deux requêtes:
$sql1=CREATE TABLE vent AS SELECT * FROM UGRB ; // je copie la table UGRB dans vent
$sql2="ALTER TABLE vent ADD VGRB text"; //je fabrique une nouvelle colonne dans vent: VGRB
Mais après comment faire pour insérer les données de la colonne de VGRB de la table VGRB dans vent ???
Merci d'avance
Cordialement
J'aimerai faire une requête SQL qui me permet de récupérer des données dans deux tables différentes.
Jusque la c'est compréhensible :D
Voila mes deux tables:
UGRB
LAT | LON |ECH |UGRB
45.0 | 0.0 | 3 | 0.9
45.5 | 0.0 | 3 | 0.5
45.0 | 0.5 | 3 | 1.2
45.5 | 0.5 | 3 | 3.4
45.0 | 0.0 | 6 | 0.9
45.5 | 0.0 | 6 | 0.5
45.0 | 0.5 | 6 | 1.2
45.5 | 0.5 | 6 | 3.4
et VGRB
LAT | LON |ECH |VGRB
45.0 | 0.0 | 3 | -0.2
45.5 | 0.0 | 3 | -4.9
45.0 | 0.5 | 3 | 0.0
45.5 | 0.5 | 3 | 0.1
45.0 | 0.0 | 6 | -0.2
45.5 | 0.0 | 6 | -4.9
45.0 | 0.5 | 6 | 0.0
45.5 | 0.5 | 6 | 0.1
Voici donc un vulgaire exemple de la configuration de ces deux tables car en réalités, elles contiennent 19 200 lignes chacune :)
Donc voici ma question,
Comment créer une table nommée vent et qui ressemblerai a ceci:
LAT | LON |ECH |UGRB |VGRB
45.0 | 0.0 | 3 | 0.9 | -0.2
45.5 | 0.0 | 3 | 0.5 | -4.9
45.0 | 0.5 | 3 | 1.2 | 0.0
45.5 | 0.5 | 3 | 3.4 | 0.1
45.0 | 0.0 | 6 | 0.9 | -0.2
45.5 | 0.0 | 6 | 0.5 | -4.9
45.0 | 0.5 | 6 | 1.2 | 0.0
45.5 | 0.5 | 6 | 3.4 | 0.1
Bon j'ai dejà une petite idée:
J'exécute ces deux requêtes:
$sql1=CREATE TABLE vent AS SELECT * FROM UGRB ; // je copie la table UGRB dans vent
$sql2="ALTER TABLE vent ADD VGRB text"; //je fabrique une nouvelle colonne dans vent: VGRB
Mais après comment faire pour insérer les données de la colonne de VGRB de la table VGRB dans vent ???
Merci d'avance
Cordialement
A voir également:
- Problème avec une requête sql
- Logiciel sql - Télécharger - Bases de données
- Requête sql pour afficher uniquement les fleurs dont le prix est strictement inférieur à 10 euros - Forum calculatrices
- Sql (+) - Forum Programmation
- Cherche des haricot vendez les moi ✓ - Forum DS
- Sql lister les tables ✓ - Forum Programmation
6 réponses
Salut,
Cela devrait être du genre (en Oracle) :
create table VENT as select a.LAT, a.LON, a.ECH, a.UGRB, b.VGRB
from UGRB a , VGRB b
where a.LAT = b.LAT
and a.LON = b.LON
and a.ECH = b.ECH
cdlt
Cela devrait être du genre (en Oracle) :
create table VENT as select a.LAT, a.LON, a.ECH, a.UGRB, b.VGRB
from UGRB a , VGRB b
where a.LAT = b.LAT
and a.LON = b.LON
and a.ECH = b.ECH
cdlt
slt
Merci pour ta réponse mais j'ai encore un problème:
J'execute ce fichier php:
Mais il s'affiche ceci à la fin : "Erreur 2:"
Je test donc la requête sur phpyadmin
Et il s'affiche:
"#1317 - Query execution was interrupted"
Je pense me tromper sur "$bdd->query($sql0)" , j'ai aussi tester $bdd->exec($sql0)
Mais ca ne marche pas.
Merci pour ta réponse mais j'ai encore un problème:
J'execute ce fichier php:
<?php
try
{
$bdd = new PDO('mysql:host=host ;dbname=dbname', 'user', 'mot de passe');
}
catch (Exception $e)
{
die('Erreur1 : ' . $e->getMessage());
}
$sql0="create table VENT as select a.LAT, a.LON, a.ECH, a.UGRB, b.VGRB
from UGRB a , VGRB b
where a.LAT = b.LAT
and a.LON = b.LON
and a.ECH = b.ECH ";
$bdd->query($sql0) or die ('Erreur2 : '.mysql_error());
?>
Mais il s'affiche ceci à la fin : "Erreur 2:"
Je test donc la requête sur phpyadmin
Et il s'affiche:
"#1317 - Query execution was interrupted"
Je pense me tromper sur "$bdd->query($sql0)" , j'ai aussi tester $bdd->exec($sql0)
Mais ca ne marche pas.
Tu peux faire:
CREATE TABLE vent SELECT a.LAT, a.LON, a.ECH, a.UGRB, b.VGRB
FROM UGRB a , VGRB b
WHERE a.LAT = b.LAT
AND a.LON = b.LON
AND a.ECH = b.ECH ";
En fait c'est ce qu'a écrit jee pee mais sans le "AS"
CREATE TABLE vent SELECT a.LAT, a.LON, a.ECH, a.UGRB, b.VGRB
FROM UGRB a , VGRB b
WHERE a.LAT = b.LAT
AND a.LON = b.LON
AND a.ECH = b.ECH ";
En fait c'est ce qu'a écrit jee pee mais sans le "AS"
Tu as la même erreur: #1317 - Query execution was interrupted" ?
Essaye ça:
CREATE TABLE vent SELECT a.LAT, a.LON, a.ECH, a.UGRB, b.VGRB
FROM UGRB a JOIN VGRB b
ON a.LAT = b.LAT
AND a.LON = b.LON
AND a.ECH = b.ECH
essaye la requête directement dans ta base de données si ça ne marche pas. Normalement la requête est bonne.
Essaye ça:
CREATE TABLE vent SELECT a.LAT, a.LON, a.ECH, a.UGRB, b.VGRB
FROM UGRB a JOIN VGRB b
ON a.LAT = b.LAT
AND a.LON = b.LON
AND a.ECH = b.ECH
essaye la requête directement dans ta base de données si ça ne marche pas. Normalement la requête est bonne.
a mon avis il ne faut pas faire CREATE TABLE comme ça
on fait la creation de la table une seule fois
- soit directement par phpmyadmin
- soit au début du script php
CREATE TABLE vent ........... avec tous les noms de champs leur type, leur taille etc..
voir sur le site mysql pour plus de détails
et ensuite dans la script php il faut faire une requette
SELECT a.LAT, a.LON, a.ECH, a.UGRB, b.VGRB
FROM UGRB a , VGRB b
WHERE a.LAT = b.LAT
AND a.LON = b.LON
AND a.ECH = b.ECH "
et une boucle while sur le résultat qui fait un ISERT INTO vent ..... à chaque passage
on fait la creation de la table une seule fois
- soit directement par phpmyadmin
- soit au début du script php
CREATE TABLE vent ........... avec tous les noms de champs leur type, leur taille etc..
voir sur le site mysql pour plus de détails
et ensuite dans la script php il faut faire une requette
SELECT a.LAT, a.LON, a.ECH, a.UGRB, b.VGRB
FROM UGRB a , VGRB b
WHERE a.LAT = b.LAT
AND a.LON = b.LON
AND a.ECH = b.ECH "
et une boucle while sur le résultat qui fait un ISERT INTO vent ..... à chaque passage
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Si le create table marche comme cela, il y a un exemple dans la doc:
http://dev.mysql.com/doc/refman/5.0/fr/create-table.html
et j'ai essayé sur une de mes bases en local, il n'y a aucun soucis.
http://dev.mysql.com/doc/refman/5.0/fr/create-table.html
et j'ai essayé sur une de mes bases en local, il n'y a aucun soucis.