Bonjour,
J’ai un petit problème que j’ai résolu en PHP mais j’aurai aimé savoir s’il était possible de mieux utiliser SQL pour récuperer les infos dont j’ai besoin.
Alors voilà le problème:j’ai deux tables: images et vignettes
La première table (‹ images ›)contient des infos sur des images: id unique, id de la vignette de l’image stockée dans la deuxième table (‹ vignettes ›).
La deuxième table contient des infos sur les vignettes: id unique et nom du fichier.
Une même vignette peut être associée à plusieurs images mais une image ne peut être associée qu’à une seule vignette (ça c’est gêré ça tourne).
J’aimerais bien trouver une requête qui me renvoit les ids des vignettes qui ne se trouvent pas dans la colone ‹ id_vignette › de la table ‹ image ›. Autrement dit les vignettes orphelines.
Pour le moment je fais deux requêtes qui me renvoient chacune un tableau (l’un contenant toutes les ids de la table ‹ vignettes ›, l’autre contenant la colonne ‹ id_vignette › de la table ‹ tableaux ›). Je fais une comparaison de ces tableaux qui me renvoie un tableau contenant les id de la table ‹ vignettes › qui ne se trouvent pas dans la table ‹ tableaux ›.
J’efface ensuite toutes ces sales vignettes qui font rien qu’à prendre de l’espace pour rien.
Tout ça marche très bien en php avec le code qui suit:
[code]
$i = 0;
$result = mysql_query("SELECT id FROM vignettes");
while ($row = mysql_fetch_array($result)) {
$i += 1;
$vignette[$i] = $row['id'];
}
$i = 0;
$result = mysql_query("SELECT id_vignette FROM images");
while ($row = mysql_fetch_array($result)) {
$i += 1;
$image[$i] = $row['id_vignette'];
}
$purge = array_diff($vignette, $image);[/code]
Voilà… je récupère un tableau ‹ $purge › qui contient toutes les ids de la table ‹ vignettes › qui ne se trouvent pas dans la table ‹ tableaux ›.
Mais est-il possible de construire une requêt SQL qui me renverrait directement ce tableau (enfin les lignes de ce tableau?
Merci d’avoir lu ^^
Ps: c’est pas urgent ni même indispensable hein… ça tourne très bien mais s’il y a moyen de faire mieux niveau SQL je suis très curieux