A voir également:
- MySQL utilisation de condition IF/THEN/...
- Notice d'utilisation - Guide
- Utilisation chromecast - Guide
- Excel cellule couleur si condition texte - Guide
- Mysql community server - Télécharger - Bases de données
- Condition et excel - Guide
7 réponses
Bonjour,
Si j'ai bien compris ce que tu veux :
SELECT * FROM TABLE REF
WHERE NOT EXIST
( SELECT 1 FROM TABLE COMP
WHERE REF.SOURCE=COMP.DEST
AND REF.DEST=COMP.SOURCE )
Ca devrait fonctionner...
Mais une table séparée pour les choix serait peut-être plus appropriée, plutot qu'un champ String contenant une liste.
Si un jour tu souhaites faire des conditions sur les choix, ca va etre compliqué comme ca...
Cordialement, M.
Si j'ai bien compris ce que tu veux :
SELECT * FROM TABLE REF
WHERE NOT EXIST
( SELECT 1 FROM TABLE COMP
WHERE REF.SOURCE=COMP.DEST
AND REF.DEST=COMP.SOURCE )
Ca devrait fonctionner...
Mais une table séparée pour les choix serait peut-être plus appropriée, plutot qu'un champ String contenant une liste.
Si un jour tu souhaites faire des conditions sur les choix, ca va etre compliqué comme ca...
Cordialement, M.
Bonjour,
Soit j'ai pas compris, ou soit c'est tout simple avec une bête jointure ; par exemple :
SELECT REFERENCE.*
FROM TA_TABLE REFERENCE, TA_TABLE COMPARAISON
WHERE
REFERENCE.SOURCE = COMPARAISON.DESTINATAIRE
AND COMPARAISON.SOURCE = REFERENCE.DESTINATAIRE
AND REFERENCE.CHOIX = COMPARAISON.CHOIX
J'ai pas testé mais ca me semble correspondre à ce que tu souhaites.
Cordialement, M.
Soit j'ai pas compris, ou soit c'est tout simple avec une bête jointure ; par exemple :
SELECT REFERENCE.*
FROM TA_TABLE REFERENCE, TA_TABLE COMPARAISON
WHERE
REFERENCE.SOURCE = COMPARAISON.DESTINATAIRE
AND COMPARAISON.SOURCE = REFERENCE.DESTINATAIRE
AND REFERENCE.CHOIX = COMPARAISON.CHOIX
J'ai pas testé mais ca me semble correspondre à ce que tu souhaites.
Cordialement, M.
Bonjour,
Tu n'as pas besoin de deux tables.
Dans le FROM, tu peux mettre deux fois la même table avec un alias.
Par exemple, en admettant que tu conserves qu'une table nommée 'table' :
SELECT REF.choix AS Choix1, COMP.choix AS Choix2
FROM table REF, table COMP
WHERE REF.uid_source = COMP.uid_dest
AND REF.uid_dest = COMP.uid_source
Non ?
Cordialement, M.
Tu n'as pas besoin de deux tables.
Dans le FROM, tu peux mettre deux fois la même table avec un alias.
Par exemple, en admettant que tu conserves qu'une table nommée 'table' :
SELECT REF.choix AS Choix1, COMP.choix AS Choix2
FROM table REF, table COMP
WHERE REF.uid_source = COMP.uid_dest
AND REF.uid_dest = COMP.uid_source
Non ?
Cordialement, M.
Merci swed,
effectivement avec une jointure j'arrive à avoir mon résultat, mais je suis obliger d'utiliser deux tables :/
Pour l instant je crée une table temporaire avec que user1 et une autre qu'avec user2, puis ensuite j'applique ma jointure.
es que ce système n'es pas trop lourd en traitement ?
car il devrais y avoir se genre de requête toutes les 5min sur tous mes utilisateurs :/
Ou alors peut être il y a moyen de trouvé une solution qu'en une seul étape?
Merci encore
effectivement avec une jointure j'arrive à avoir mon résultat, mais je suis obliger d'utiliser deux tables :/
Pour l instant je crée une table temporaire avec que user1 et une autre qu'avec user2, puis ensuite j'applique ma jointure.
SELECT Table1.choix AS Choix1, Table2.choix AS Choix2 FROM Table1, Table2 WHERE Table1.uid_source = Table2.uid_dest AND Table1.uid_dest = Table2.uid_source
es que ce système n'es pas trop lourd en traitement ?
car il devrais y avoir se genre de requête toutes les 5min sur tous mes utilisateurs :/
Ou alors peut être il y a moyen de trouvé une solution qu'en une seul étape?
Merci encore
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Encore merci Swed, cela marche impec. Effectivement je n'avais pas pensé à utiliser des alias pour les table.
Maintenant je suis bloqué a un autre problème, car je ne voudrais afficher QUE les utilisateur qui ont émis un choix sur un autre utilisateur et qui n'ont pas encore eu de réponse (ex. user4).
Je pensais utiliser cette commande :
Mais cela m'affiche trop de données
Je pense que je me suis embrouillé quelque part, mais je n'arrive pas a m'en sortir :/
Maintenant je suis bloqué a un autre problème, car je ne voudrais afficher QUE les utilisateur qui ont émis un choix sur un autre utilisateur et qui n'ont pas encore eu de réponse (ex. user4).
id_match source dest choix 14 user4 user1 1;2;5;7; 15 user3 user1 1;2;7; 10 user1 user2 1;3;5;7;9 11 user2 user1 1;9; 12 user1 user3 2;4;5
Je pensais utiliser cette commande :
SELECT REF.choix AS Choix1, COMP.choix AS Choix2 FROM table REF, table COMP WHERE REF.uid_source = '".$_GET['uid']."' AND COMP.uid_dest = '".$_GET['uid']."' AND REF.uid_source = COMP.uid_dest AND REF.uid_dest != COMP.uid_source
Mais cela m'affiche trop de données
Je pense que je me suis embrouillé quelque part, mais je n'arrive pas a m'en sortir :/
Encore merci, la requête est parfaite, tu gères ;)
Effectivement, je pense devoir créer ma table de choix.
Mais je me demandais, car mes souvenir de DSL un peu troublés, mais avec des clé primaire et étrangère est-il possible de lier des table?
Je pense utiliser l'id du match comme clé étrangère dans ma table choix
Exemple :
Table match
Table Choix fait pas les utilisateur
Table désignation du choix
Es que cette composition semble correcte?
J ai encore un peu de mal à définir à quoi sert réellement les clé étrangère :/
Effectivement, je pense devoir créer ma table de choix.
Mais je me demandais, car mes souvenir de DSL un peu troublés, mais avec des clé primaire et étrangère est-il possible de lier des table?
Je pense utiliser l'id du match comme clé étrangère dans ma table choix
Exemple :
Table match
id_match;source;dest;id_choix
Table Choix fait pas les utilisateur
id_choixUSER ; #id_match ; choix 1 ; choix 2 ; choix 3 (type BOOL)...
Table désignation du choix
id_choix;description;
Es que cette composition semble correcte?
J ai encore un peu de mal à définir à quoi sert réellement les clé étrangère :/