Imbriquer des requets SQLs
Résolu
Hellreaper
Messages postés
34
Date d'inscription
Statut
Membre
Dernière intervention
-
zippeur Messages postés 197 Date d'inscription Statut Membre Dernière intervention -
zippeur Messages postés 197 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je travail sur la même table, Je voudrais pouvoir prendre une première date (là ou le parent id est NULL) et puis après avoir la dernier date de cette même formation. J'imagine qu'il faudrait que j'imbrique ces deux requêtes sql??
ma table ressemble plus ou moins a cela:
event_id event_parent_id event_date
1 NULL 2009-04-06
2 1 2009-04-07
3 1 2009-04-08
4 NULL 2009-04-10
5 4 2009-04-11
6 4 2009-04-12
Voici les requêtes que j'utilise mais elles me renvoient des erreurs:
$sql = 'SELECT event_id, event_title, event_date FROM events WHERE event_parent_id IS NULL ORDER by event_date ASC ';
$req = mysql_query($sql, $connexion_vcalendar);
while( $res = mysql_fetch_array($req, MYSQL_NUM) )
{
$Formation_id = $res[0];
$Formation_name = $res[1];
$Formation_start_date = $res[2];
$sql = 'SELECT event_date FROM events WHERE event_parent_id = \"$Formation_id\" ';
$req = mysql_query($sql, $connexion_vcalendar);
while( $res = mysql_fetch_array($req, MYSQL_NUM) )
{
$formation_last_date = $res[0];
}
echo " id = ".$Formation_id." Formation: ".$Formation_name." Du ".$Formation_start_date." a ".$formation_last_date.". <br/>";
}
Merci,
Je travail sur la même table, Je voudrais pouvoir prendre une première date (là ou le parent id est NULL) et puis après avoir la dernier date de cette même formation. J'imagine qu'il faudrait que j'imbrique ces deux requêtes sql??
ma table ressemble plus ou moins a cela:
event_id event_parent_id event_date
1 NULL 2009-04-06
2 1 2009-04-07
3 1 2009-04-08
4 NULL 2009-04-10
5 4 2009-04-11
6 4 2009-04-12
Voici les requêtes que j'utilise mais elles me renvoient des erreurs:
$sql = 'SELECT event_id, event_title, event_date FROM events WHERE event_parent_id IS NULL ORDER by event_date ASC ';
$req = mysql_query($sql, $connexion_vcalendar);
while( $res = mysql_fetch_array($req, MYSQL_NUM) )
{
$Formation_id = $res[0];
$Formation_name = $res[1];
$Formation_start_date = $res[2];
$sql = 'SELECT event_date FROM events WHERE event_parent_id = \"$Formation_id\" ';
$req = mysql_query($sql, $connexion_vcalendar);
while( $res = mysql_fetch_array($req, MYSQL_NUM) )
{
$formation_last_date = $res[0];
}
echo " id = ".$Formation_id." Formation: ".$Formation_name." Du ".$Formation_start_date." a ".$formation_last_date.". <br/>";
}
Merci,
A voir également:
- Imbriquer des requets SQLs
- Oliver vend des fleurs en ligne. la base de données de son site web comporte une table nommée fleur. complétez la requête sql ci-dessous pour afficher uniquement les fleurs dont le prix est strictement inférieur à 10 euros. combien y en a-t-il ? ✓ - Forum DS
- Sql liste des tables ✓ - Forum Programmation
- Oliver vend des fleurs en ligne. la base de données de son site web comporte une table nommée fleur. dans le processeur de requête sql ci-dessous, écrivez la requête pour afficher uniquement les graminées dont le prix est strictement supérieur à 10. combien y en a-t-il ? ✓ - Forum MySQL
- La clause de la requête est incomplète - Forum Programmation
- Roxane cherche des informations pour écrire un rapport sur la jeunesse. avec un moteur de recherche généraliste, elle souhaite limiter les résultats de sa recherche aux pages de l’organisation internationale de la francophonie. quelle requête doit-elle taper dans le champ de recherche ? - Forum Réseau
6 réponses
SELECT events.event_id, events.event_title, events.event_date, max(events2.event_date) AS event_date2 FROM events, events AS events2 WHERE events2.event_parent_id=events.event_id AND events.event_parent_id IS NULL GROUP BY events.event_id ORDER BY events.event_date ASC
Je dis ptet une grosse c*****ie, j'ai pas testé non plus ...
Je dis ptet une grosse c*****ie, j'ai pas testé non plus ...
$sql = 'SELECT events.event_id, events.event_title, events.event_date,events2.event_date AS event_date2 FROM events, events AS events2 WHERE events2.event_parent_id=events.event_id AND events.event_parent_id IS NULL ORDER by events.event_date ASC ';
$req = mysql_query($sql, $connexion_vcalendar);
while( $res = mysql_fetch_array($req, MYSQL_NUM) )
{
$Formation_id = $res[0];
$Formation_name = $res[1];
$Formation_start_date = $res[2];
$formation_last_date = $res[3];
}
J'ai pas testé ...
$req = mysql_query($sql, $connexion_vcalendar);
while( $res = mysql_fetch_array($req, MYSQL_NUM) )
{
$Formation_id = $res[0];
$Formation_name = $res[1];
$Formation_start_date = $res[2];
$formation_last_date = $res[3];
}
J'ai pas testé ...
Bonjour,
Merci pour ta réponse! c'est quasiment se qu'il me fallait, le problème est que maintenant il m'affiche tout les jours, voici un exemple de se qu'il m'affiche:
id = 1 Formation: Formation ABC 1988 Du 2009-04-06 au 2009-04-07.
id = 1 Formation: Formation ABC 1988 Du 2009-04-06 au 2009-04-08.
id = 1 Formation: Formation ABC 1988 Du 2009-04-06 au 2009-04-09.
id = 38 Formation: C389CD1 Du 2009-05-06 au 2009-05-07.
id = 38 Formation: C389CD1 Du 2009-05-06 au 2009-05-08.
id = 38 Formation: C389CD1 Du 2009-05-06 au 2009-05-09.
id = 38 Formation: C389CD1 Du 2009-05-06 au 2009-05-10.
id = 90 Formation: C548DCS9 Du 2009-04-13 au 2009-04-14.
id = 90 Formation: C548DCS9 Du 2009-04-13 au 2009-04-15.
id = 90 Formation: C548DCS9 Du 2009-04-13 au 2009-04-16.
alors que moi je voudrais qu'il m'affiche que la dernière ligne,soit:
id = 1 Formation: Formation ABC 1988 Du 2009-04-06 au 2009-04-09.
id = 38 Formation: C389CD1 Du 2009-05-06 au 2009-05-10.
id = 90 Formation: C548DCS9 Du 2009-04-13 au 2009-04-16.
Sachant que j'utilise ton code:
$sql = 'SELECT events.event_id, events.event_title, events.event_date,events2.event_date AS event_date2 FROM events, events AS events2 WHERE events2.event_parent_id=events.event_id AND events.event_parent_id IS NULL ORDER by events.event_date ASC ';
$req = mysql_query($sql, $connexion_vcalendar);
while( $res = mysql_fetch_array($req, MYSQL_NUM) )
{
$Formation_id = $res[0];
$Formation_name = $res[1];
$Formation_start_date = $res[2];
$formation_last_date = $res[3];
echo " id = ".$Formation_id." Formation: ".$Formation_name." Du ".$Formation_start_date." au ".$formation_last_date.". <br/>";
}
Merci pour ta réponse! c'est quasiment se qu'il me fallait, le problème est que maintenant il m'affiche tout les jours, voici un exemple de se qu'il m'affiche:
id = 1 Formation: Formation ABC 1988 Du 2009-04-06 au 2009-04-07.
id = 1 Formation: Formation ABC 1988 Du 2009-04-06 au 2009-04-08.
id = 1 Formation: Formation ABC 1988 Du 2009-04-06 au 2009-04-09.
id = 38 Formation: C389CD1 Du 2009-05-06 au 2009-05-07.
id = 38 Formation: C389CD1 Du 2009-05-06 au 2009-05-08.
id = 38 Formation: C389CD1 Du 2009-05-06 au 2009-05-09.
id = 38 Formation: C389CD1 Du 2009-05-06 au 2009-05-10.
id = 90 Formation: C548DCS9 Du 2009-04-13 au 2009-04-14.
id = 90 Formation: C548DCS9 Du 2009-04-13 au 2009-04-15.
id = 90 Formation: C548DCS9 Du 2009-04-13 au 2009-04-16.
alors que moi je voudrais qu'il m'affiche que la dernière ligne,soit:
id = 1 Formation: Formation ABC 1988 Du 2009-04-06 au 2009-04-09.
id = 38 Formation: C389CD1 Du 2009-05-06 au 2009-05-10.
id = 90 Formation: C548DCS9 Du 2009-04-13 au 2009-04-16.
Sachant que j'utilise ton code:
$sql = 'SELECT events.event_id, events.event_title, events.event_date,events2.event_date AS event_date2 FROM events, events AS events2 WHERE events2.event_parent_id=events.event_id AND events.event_parent_id IS NULL ORDER by events.event_date ASC ';
$req = mysql_query($sql, $connexion_vcalendar);
while( $res = mysql_fetch_array($req, MYSQL_NUM) )
{
$Formation_id = $res[0];
$Formation_name = $res[1];
$Formation_start_date = $res[2];
$formation_last_date = $res[3];
echo " id = ".$Formation_id." Formation: ".$Formation_name." Du ".$Formation_start_date." au ".$formation_last_date.". <br/>";
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question