Page 1 sur 1
Join Sur select
Posté : 28 mai 2019, 15:07
par yoann38
Salut tout le monde
Voila je cherche à faire la jointure pour un select sur id_membre à savoir que mes 2 tables on id_membre d'ou le message que j'ai id_membre est ambigu
Comment puis je résoudre mon soucis svp ?
SELECT * FROM membres JOIN siteweb WHERE id_membre = '5'
Re: Join Sur select
Posté : 28 mai 2019, 15:10
par Saian
Salut, tu dois soit mettre le nom de la table devant le champ, soit un alias :
SELECT * FROM membres m JOIN siteweb s ON s.id_membre = m.id_membre WHERE m.id_membre = '5'
Re: Join Sur select
Posté : 28 mai 2019, 15:37
par yoann38
Merci pour les alias je n'en n'avais jamais encore utiliser.
Par contre petite question ok je pet affiché mes résultats mais par exemple j'ai une colonne statut qui vaut 1 ou 0
J'aimerais pour voir afffiché le nombre d'entré qui sont 0 et ce qui sont à 1
Je dois refaire une requete COUNT ?
Re: Join Sur select
Posté : 28 mai 2019, 16:21
par Saian
Oui 2 requêtes SELECT COUNT avec le WHERE qui va bien (WHERE status = 0 et WHERE status = 1).
Re: Join Sur select
Posté : 28 mai 2019, 16:49
par yoann38
je voulais savoir si il y avait un autre moyen pour optimiser tout ça
Re: Join Sur select
Posté : 28 mai 2019, 16:51
par Saian
2 requêtes c'est pas la mort question perf. Sinon tu peux toujours boucler sur les résultats et compter.
Re: Join Sur select
Posté : 28 mai 2019, 16:53
par yoann38
bah du coup j'en fait 3 celle qui comporte le Join puis une statut 0 et puis une statut 1.
3 requete sur la page
Re: Join Sur select
Posté : 28 mai 2019, 16:54
par Saian
Franchement ça va. Si tu as bien un index sur la colonne id_membre et un index sur la colonne status, aucun problème.
Re: Join Sur select
Posté : 28 mai 2019, 17:10
par Saian
Je viens de tester ça yoann, après de la à dire si ce serait plus rapide que les 2 requêtes supplémentaires...? de plus cela demande que tu ais fait un fetch de tous les résultats sous forme de tableaux associatifs afin d'avoir le tableau qui va bien.
$array = array(
array('id' => 1, 'status' => 0),
array('id' => 2, 'status' => 0),
array('id' => 3, 'status' => 0),
array('id' => 4, 'status' => 1),
);
$result = array_count_values(array_column($array, 'status'));
print_r($result);
/*
Output :
Array
(
[0] => 3 // il y a bien 3 status = 0
[1] => 1 // et 1 status = 1
)
*/