|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Invité régulier
![]() Inscription : janvier 2007 Messages : 122 ![]() |
Bonjour à tous, voici mon PB
(avec des tables alégées ) j'ai donc une table : t_artistes -id et une table t_oeuvres: -id -id_artiste -image Un artiste peut avoir 1 ou n oeuvres . Je veux faire une requete qui me permette de récupérer pour chaque artiste une de ces oeuvre aléatoirement. Moi j'ai fait untruc comme ça : Code :
Code :
J'espere avoir été clair, Merci d'avance pour votre soutient COrdialement; |
||||
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Saluton,
Peut-être comme ça Code mysql :
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
||
|
00
|
|
|
#3 | ||
|
Invité régulier
![]() Inscription : janvier 2007 Messages : 122 ![]() |
Bonjour Maljuna
J'ai testé ta réponse Code :
|
||
|
|
00
|
|
|
#4 | |||
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Citation:
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
|||
|
00
|
|
|
#5 | ||
|
Invité régulier
![]() Inscription : janvier 2007 Messages : 122 ![]() |
En fait si j'utilise ta réponse tel quel:
Code :
et le fait d'avoir a.id => id_artiste et id_artiste dans la 2eme requête c'est pas gênant? pas d’ambiguïté pour SQL ? |
||
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
Au temps pour moi, mais vu l'heure matutinale à laquelle j'ai posté, ce n'est pas surprenant.
Dans la sous-requête, la corrélation doit être recherchée autrement Code :
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
||
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : janvier 2007 Messages : 122 ![]() |
J'ai ce message d'erreur:
#1054 - Unknown column 'artiste' in 'where clause' |
|
|
00
|
|
|
#8 | ||
![]() ![]() |
Je soumets une autre idée sans garantie que ça fonctionne.
Requête 1 : Je crée une table temporaire qui reprend la table t_oeuvres en la classant par artiste puis aléatoirement. Les ouvres de chaque artiste devraient donc être classées aléatoirement. Requête 2 : Je modifie la table temporaire en y ajoutant un identifiant auto-incrémenté, ce qui va permettre de classer les lignes de la table. Artiste 1 : ligne 1 à N Artiste 2 : ligne N+1 à X... Requête 3 : Je sélectionne l'id mini pour chaque artiste et je récupère l'identifiant et l'image de l'oeuvre. La procédure complète : Code :
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
||
|
00
|
|
|
#9 | ||
|
Expert Confirmé
![]() ![]() Avcxjo MoKoRetraité Inscription : novembre 2005 Messages : 2 530 ![]() |
En fait, je crois qu'il faut plutôt procéder comme cela
Code mysql :
__________________
Kie lumo eksistas ankaŭ ombro troviĝas. L.L. Zamenhof articles : Comment émuler un tableau croisé [quasi] dynamique et : Une énigme mathématique résolue avec MySQL recommande l'utilisation de PDO (PHP5 Data Objects) |
||
|
00
|
|
|
#10 | ||
|
Invité régulier
![]() Inscription : janvier 2007 Messages : 122 ![]() |
Merci à vous.
Ceci semble bien fonctionner , merci maljuna Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com