par
Cyrano » 24 sept. 2011, 18:32
Un autre tuto sur les jointures, beaucoup plus basique que celui néanmoins excellent de developpez.com
Le tuto est basé sur deux tables, mais si tu en comprends le fonctionnement, ça marchera aussi bien pour trois, quatre voire douze ou vingt tables, même si il est vrai que plus tu auras de liaisons, plus ce sera complexe pour obtenir des résultats vraiment pertinents.
Le tuto commence avec une manière de faire en établissement les liaisons dans la clause WHERE, mais il termine en montrant comment faire des jointures normalisées, comme je te l'ai du reste montré en privé
Ce que tu as fait avec une seule table, c'est également une jointure, mais vu qu'il n'y a qu'une seule table, on appelle ça une auto-jointure et on doit impérativement utiliser des alias. La, il est bon d'en utiliser aussi selon les cas, ça reste une bonne habitude et on a du code plus clairement lisible.
Prends aussi l'habitude d'écrire tes requêtes de façon à en faciliter la lecture, tant pour les autres que pour toi-même.
Exemple, au lieu de faire :
CREATE TABLE SousMenu (Id int(13) UNIQUE AUTO_INCREMENT, MenuId int(13) UNSIGNED, SousMenu mediumtext, SousMenuUrl mediumtext, MenuMenu mediumtext, PRIMARY KEY (Id));
Tu peux faire :
CREATE TABLE SousMenu (
Id INT(13) UNIQUE AUTO_INCREMENT,
MenuId INT(13) UNSIGNED,
SousMenu MEDIUMTEXT,
SousMenuUrl MEDIUMTEXT,
MenuMenu MEDIUMTEXT,
PRIMARY KEY (Id)
);
Mets les mots-clés en majuscule et utilise une indentation : comme tu peux voir, c'est beaucoup plus clair et tu vois immédiatement de quoi peut avoir l'air ta table.
Je te suggère de voir le tuto mentionné, de faire ensuite quelques essais, et, si tu as des difficultés, de nous montrer ici ce que tu as fait, ce que tu attendais comme résultat et ce que tu as obtenu à la place, on repèrera rapidement où tu auras fait une erreur.
[url=http://forum.phpfrance.com/faq-tutoriels/les-jointures-niveau-debutant-t21507.html]Un autre tuto sur les jointures[/url], beaucoup plus basique que celui néanmoins excellent de developpez.com
Le tuto est basé sur deux tables, mais si tu en comprends le fonctionnement, ça marchera aussi bien pour trois, quatre voire douze ou vingt tables, même si il est vrai que plus tu auras de liaisons, plus ce sera complexe pour obtenir des résultats vraiment pertinents.
Le tuto commence avec une manière de faire en établissement les liaisons dans la clause WHERE, mais il termine en montrant comment faire des jointures normalisées, comme je te l'ai du reste montré en privé ;)
Ce que tu as fait avec une seule table, c'est également une jointure, mais vu qu'il n'y a qu'une seule table, on appelle ça une auto-jointure et on doit impérativement utiliser des alias. La, il est bon d'en utiliser aussi selon les cas, ça reste une bonne habitude et on a du code plus clairement lisible.
Prends aussi l'habitude d'écrire tes requêtes de façon à en faciliter la lecture, tant pour les autres que pour toi-même.
Exemple, au lieu de faire :
[sql]CREATE TABLE SousMenu (Id int(13) UNIQUE AUTO_INCREMENT, MenuId int(13) UNSIGNED, SousMenu mediumtext, SousMenuUrl mediumtext, MenuMenu mediumtext, PRIMARY KEY (Id));[/sql]
Tu peux faire :
[sql]CREATE TABLE SousMenu (
Id INT(13) UNIQUE AUTO_INCREMENT,
MenuId INT(13) UNSIGNED,
SousMenu MEDIUMTEXT,
SousMenuUrl MEDIUMTEXT,
MenuMenu MEDIUMTEXT,
PRIMARY KEY (Id)
);[/sql]
Mets les mots-clés en majuscule et utilise une indentation : comme tu peux voir, c'est beaucoup plus clair et tu vois immédiatement de quoi peut avoir l'air ta table.
Je te suggère de voir le tuto mentionné, de faire ensuite quelques essais, et, si tu as des difficultés, de nous montrer ici ce que tu as fait, ce que tu attendais comme résultat et ce que tu as obtenu à la place, on repèrera rapidement où tu auras fait une erreur.