Requête MySQL avec jointure
Bonjour à tous!
J'ai besoin d'aide pour ma requête qui nécessite une jointure, bien après avoir visité le forum, je me suis rendu compte que certains utilisent INNER JOIN et bien d'autres encore, seulement je ne comprends pas pourquoi cette méthode est plus efficace qu'un simple WHERE.
Je vous propose de jeter un œil à ma requête:
Code:
1 2 3 4 5 6 7
|
SELECT Idchaufgesco,NomChauff,Carte,Recette,TypeOperation,Relica,Observation
FROM t_chauffeur, t_recette, t_societe, t_op
WHERE t_chauffeur.Idchaufgesco=t_recette.Idchaufgesco
AND t_recette.IdSoc=t_societe.IdSoc
AND t_societe.IdOp=t_op.IdOp
AND TypeOperation LIKE 'Avance' |
Il m'affiche comme message d'erreur qui est le suivant:
"Column 'Idchaufgesco' in field list is ambiguous"
Quel est le problème précisément?
Es-ce que quelqu'un peut m'aider s'il vous plaît?
Merci d'avance.
Super ça fonctionne! Mais!
Bonjour et merci pour ta réponse qui m'a beaucoup aidé à avancé rawsrc!
Mais! Il reste un dernier souci!!! Mon tableau s'affiche et dans la colonne où je dois voir s'afficher les avances il y a un message d'erreur:
Notice: Undefined index: in C:\wamp\www\AppliCaisse\table_activites.php on line 52
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| <?php
include('connexion.php');
// TABLE : ACTIVITE
$chauffeurSelected = (isset($_POST['chauffeur'])) ? $_POST['chauffeur'] : null;
$data = array();
// on ne liste l'activité que si un matricule chauffeur a été sélectionné
if (null !== $chauffeurSelected) {
$sql = <<<SQL
SELECT
t_chauffeur.Idchaufgesco,
t_chauffeur.prenom,
t_recette.Recette,
t_recette.Carte,
t_recette.IdSoc,
t_recette.Relica,
t_recette.Observation
FROM t_chauffeur
INNER JOIN t_recette ON t_chauffeur.Idchaufgesco = t_recette.Idchaufgesco
WHERE
t_chauffeur.Idchaufgesco = $chauffeurSelected;
SQL;
$qry = mysql_query($sql) or die('Requete pas comprise');
while($data[] = mysql_fetch_assoc($qry)) { }
$i = 0;
}
?>
<div style="width:800px;height:258px;overflow:auto">
<table border="2">
<thead>
<tr align="center" bgcolor="white">
<th width="10%"><font face="times new roman"><b>ID</b></font></th>
<th width="30%"><font face="times new roman"><b>Nom du chauffeur</b></font></th>
<th width="15%"><font face="times new roman"><b>Recette</b></font></th>
<th width="15%"><font face="times new roman"><b>Carte</b></font></th>
<th width="15%"><font face="times new roman"><b>Avance</b></font></th>
<th width="45%"><font face="times new roman"><b>Relica</b></font></th>
<th width="45%"><font face="times new roman"><b>Observation</b></font></th>
</tr>
</thead>
<tbody>
<?php foreach($data as $row): ?>
<tr align="center">
<input type="hidden" name="HB_id<?php echo $i++; ?>" value="<?php echo $row['Idchaufgesco']; ?>" />
<td><?php echo $row['Idchaufgesco']; ?></td>
<td><?php echo $row['prenom']; ?></td>
<td><?php echo $row['Recette']; ?></td>
<td><?php echo $row['Carte']; ?></td>
<td><?php echo $row['']; ?></td>
<td><?php echo $row['Relica']; ?></td>
<td><?php echo $row['Observation']; ?></td>
</tr>
<?php endforeach; ?>
</tbody>
</table>
</div> |
Pourquoi avoir laissé un vide dans le tableau?
Code:
<td><?php echo $row['']; ?></td>
Merci pour ton aide rawsrc!