Valeur non présente dans plusieurs colonnes

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Valeur non présente dans plusieurs colonnes

par orgerix » 07 mars 2007, 19:11

Oui je vois.

IL va donc falloire que je revois tous mes scripts pour renseigner cette colonne :cry:

par Ryle » 07 mars 2007, 19:08

Est ce la meilleur méthode ?
Euh.... je pense pas non... :)

Le mieux serait peut être de revoir ton modèle de données... une table intermédiaire permettant de savoir quel membre appartient à quelle équipe le semblerait beaucoup plus adapté. Il suffirait alors d'interroger la table et de vérifier si l'id du joueur est présent ou pas pour savoir s'il est associée à une ou des équipes :)
(voire si un joueur ne peut appartenir qu'à une seule équipe, simplement ajouter un champ idEquipe dans la table des joueurs et vérifier que celui-ci est renseigné ou pas :))

par orgerix » 07 mars 2007, 18:50

C'est bon, j'ai trouvé.

En revanche, quant à mon problème, je ne vois que comme solution de faire 7 jointure exterieur avec la même table avec un colonne différente à chaque fois.

Est ce la meilleur méthode ?

Code : Tout sélectionner

SELECT S.nom FROM membre S LEFT OUTER JOIN groupe G0 ON S.nom = G0.responsable LEFT OUTER JOIN groupe G1 ON S.nom = G1.membre1 LEFT OUTER JOIN groupe G2 ON S.nom = G2.membre2 LEFT OUTER JOIN groupe G3 ON S.nom = G3.membre3 LEFT OUTER JOIN groupe G4 ON S.nom = G4.membre4 LEFT OUTER JOIN groupe G5 ON S.nom = G5.membre5 LEFT OUTER JOIN groupe G6 ON S.nom = G6.membre6 LEFT OUTER JOIN groupe G7 ON S.nom = G7.membre7 WHERE G0.responsable IS NULL AND G1.membre1 IS NULL AND G2.membre2 IS NULL AND G3.membre3 IS NULL AND G4.membre4 IS NULL AND G5.membre5 IS NULL AND G6.membre6 IS NULL AND G7.membre7 IS NULL

par orgerix » 07 mars 2007, 18:00

Meric beaucoup.

En revanche, j'ai essayé de faire sur la console SQL un join externe simple :

Code : Tout sélectionner

SELECT S.nom, G.responsable FROM membre S LEFT OUTER JOIN groupe G ON S.nom = G.responsable WHERE G.responsable IS NULL LIMIT 0 , 30
mais ca me fait un message d'erreur :

Code : Tout sélectionner

#1267 - Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (latin1_general_ci,IMPLICIT) for operation '='

par mere-teresa » 07 mars 2007, 17:37

Valeur non présente dans plusieurs colonnes

par orgerix » 07 mars 2007, 17:26

Bonjour

J'ai une table avec dedans des informations sur des personnes et une autre contenant des équipes, de ce style responsable,membre1,membre2...

Y a t il un moyen par fonction SQL de prendre dans la table des personnes celles qui ne sont dans aucune équipe, c'est à dire qu'elle ne sont présent dans aucune colonne de la deuxième table.

S'il n'y avait qu'une colonne ou la personne pouvait être inscrite, je pourrais m'en sortir avec OUTER JOIN, mais la je ne vois pas...