Join Sur select

Mammouth du PHP | 643 Messages

28 mai 2019, 15:07

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'

Avatar du membre
Mammouth du PHP | 1609 Messages

28 mai 2019, 15:10

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'
Développeur web depuis + de 20 ans

Mammouth du PHP | 643 Messages

28 mai 2019, 15:37

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 ?

Avatar du membre
Mammouth du PHP | 1609 Messages

28 mai 2019, 16:21

Oui 2 requêtes SELECT COUNT avec le WHERE qui va bien (WHERE status = 0 et WHERE status = 1).
Développeur web depuis + de 20 ans

Mammouth du PHP | 643 Messages

28 mai 2019, 16:49

je voulais savoir si il y avait un autre moyen pour optimiser tout ça

Avatar du membre
Mammouth du PHP | 1609 Messages

28 mai 2019, 16:51

2 requêtes c'est pas la mort question perf. Sinon tu peux toujours boucler sur les résultats et compter.
Développeur web depuis + de 20 ans

Mammouth du PHP | 643 Messages

28 mai 2019, 16:53

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

Avatar du membre
Mammouth du PHP | 1609 Messages

28 mai 2019, 16:54

Franchement ça va. Si tu as bien un index sur la colonne id_membre et un index sur la colonne status, aucun problème.
Développeur web depuis + de 20 ans

Avatar du membre
Mammouth du PHP | 1609 Messages

28 mai 2019, 17:10

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
)
*/
Développeur web depuis + de 20 ans