stu76
Messages postés186Date d'inscriptionsamedi 5 mars 2005StatutMembreDernière intervention17 février 2008
-
6 oct. 2006 à 17:15
yobuntu
Messages postés7Date d'inscriptionlundi 30 octobre 2006StatutMembreDernière intervention 2 novembre 2006
-
2 nov. 2006 à 17:09
Hello,
J'ai un problème et je ne trouve pas d'info pour m'aider, j'ai une base de données qui contient 7 tables InnoDB. Et je dois mettre c'est table en relation mais je sais pas comment on fait dans la pratique. Je comprend la théorie de 1à1 ou 1à plusieurs, ... Mais comment faire avec MySQL.
Si quelqu'un à un site ou un tuto qui peut m'aider se serait vraiment super.
cs_jean84
Messages postés449Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention 5 mars 2009 6 oct. 2006 à 17:32
Tu dois faire des relations ? Je vois pas trop ce que tu veux dire a part peut etre les instructions sql de type INNER JOIN ou OUTER JOIN qui permettent de "lier" differentes tables dans une seule requete.
stu76
Messages postés186Date d'inscriptionsamedi 5 mars 2005StatutMembreDernière intervention17 février 20081 6 oct. 2006 à 17:47
Je prend un exemple concret entre ma table utilisateurs et ma table classe je dois établir une relation de un à plusieurs, sous access pas de prob je fais mon organigrame et le tour est joué mais ici je vois pas comment.
Comment peut-on faire pour arriver a ce résultat avec mysql, ou doit-on faire uniquement par requête sql dans le code php. Si c'est dans le code php est ce que quelqu'un aurait un exemple.
En tout cas merci de t'intérreser à mon prob jean84
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_jean84
Messages postés449Date d'inscriptionjeudi 26 août 2004StatutMembreDernière intervention 5 mars 2009 6 oct. 2006 à 18:03
Desole mais la je crois que sa depasse mes competences. En plus je ne vois pas trop ce que tu veux dire par relation de 1 ou plusieurs et puis sincerement, moi et access.....
yobuntu
Messages postés7Date d'inscriptionlundi 30 octobre 2006StatutMembreDernière intervention 2 novembre 2006 30 oct. 2006 à 17:48
bonjour, je me permet de m'incruster dans la conversation pour contribuer un peu et pour demander un peu d'aide:
Dans le cadre d'une relation n-n avec les tables
table USERS
user_id
user_nom
...
table CLASSES
class_id
class_nom
...
table LNK_USERS_CLASSES
user_id
class_id
Si on veut récupérer le user_nom des tout les user liées a la class d'id 1:
SELECT user_nom
FROM (USERS INNER JOIN LNK_USERS_CLASSES ON
USERS.user_id=LNK_USERS_CLASSES.user_id_ID)
WHERE LNK_USERS_CLASSES.class_id=1
ORDER BY user_nom;
Maintenant mon problème: récuperer le user_nom de tout les users qui NE sont PAS
liées à la classe d'id 1.
En esperant que vous avez compris mon message et que vous serez en mesure de m'aider
yobuntu
Messages postés7Date d'inscriptionlundi 30 octobre 2006StatutMembreDernière intervention 2 novembre 2006 30 oct. 2006 à 18:24
Merci pour ta réponse (trop) rapide...
c'est ce à quoi j'ai pensé en premier, Mais un utilisatuer qui n'est lié a aucune classe n'apparaitra pas car il ne sera pas "référencé" dans la table LNK_USER_CLASSES.
yobuntu
Messages postés7Date d'inscriptionlundi 30 octobre 2006StatutMembreDernière intervention 2 novembre 2006 31 oct. 2006 à 09:38
merci donc j'essaye LEFT JOIN au lieu de INNER JOIN + LNK_USERS_CLASSES.class_id!=1 ce qui donne la requête suivante
SELECT user_nom
FROM (USERS LEFT JOIN LNK_USERS_CLASSES ON
USERS.user_id=LNK_USERS_CLASSES.user_id_ID)
WHERE LNK_USERS_CLASSES.class_id!=1
ORDER BY user_nom;
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 31 oct. 2006 à 10:14
Si ta colonne est déclarée NOT NULL, tu devrais faire ça :
SELECT user_nom
FROM USERS LEFT JOIN LNK_USERS_CLASSES ON
USERS.user_id=LNK_USERS_CLASSES.user_id_ID
WHERE LNK_USERS_CLASSES.class_id!=1
OR LNK_USERS_CLASSES.class_id IS NULL
ORDER BY user_nom;
yobuntu
Messages postés7Date d'inscriptionlundi 30 octobre 2006StatutMembreDernière intervention 2 novembre 2006 31 oct. 2006 à 11:17
On y est presque, merci beaucoup, le probleme se pose maintenant pour le cas d'un utilisateur qui appartient à la classe (et qui pour cette raison ne devrait pas être selectionner) et qui appartient à une autre classe aussi.
stu76
Messages postés186Date d'inscriptionsamedi 5 mars 2005StatutMembreDernière intervention17 février 20081 31 oct. 2006 à 17:03
Salut,
Je suis vos débat entre toi et malalam, qui d' ailleur ta donner des infos intér. Car j'étais confronté plus ou moins au même prob du coup il a fait d'une pierre deux coups. Merci malalam.
Mais yobuntu j'aimerais savoir tu travail sur une application scolaire ? Si oui on peu, peut-être échanger des idées et se refiler des infos des tuyaux l'un l'autre. Si tu es inter contact moi.
yobuntu
Messages postés7Date d'inscriptionlundi 30 octobre 2006StatutMembreDernière intervention 2 novembre 2006 31 oct. 2006 à 17:17
en fait le probleme vient de !=1
ce que je voudrait faire c'est plutôt soustraire
SELECT user_nom
FROM USERS LEFT JOIN LNK_USERS_CLASSES ON
USERS.user_id=LNK_USERS_CLASSES.user_id_ID
WHERE LNK_USERS_CLASSES.class_id=1
à
SELECT user_nom
FROM USERS LEFT JOIN LNK_USERS_CLASSES ON
USERS.user_id=LNK_USERS_CLASSES.user_id_ID
WHERE LNK_USERS_CLASSES.class_id!=1
OR LNK_USERS_CLASSES.class_id IS NULL
ORDER BY user_nom;
ceci pour éviter de selectionner un user qui appartient à la fois à la classe 1 et à la classe 2.
J'espère que mon message ne vous embrouille pas trop.
Je crois que je pourrais faire cela par une fonction en php mais cela me prendrai un peu de temps et surtout ralentirai pas mal l'execution.
PS: ou est le bouton éditer?
@stu76, je ne travaille pas sur une application scolaire, mais ça n'empeche pas qu'on se donne des tuyaux...