Alors voilà, j'explique un peu ma structure.
J'ai des projets, qui peuvent contenir x volumes, chaque volume pouvant
contenir y chapitres. Chaque chapitre a une date de parution.
Je voudrais lister les projets, et indiquer pour chaque projet la date
de parution du dernier chapitre. (x et y peuvent valoir 0, d'où joint
externe)
Au niveau tables, ça se passe comme ça
table projects
champ id
champ title
table volumes
champ id
champ project_id
table chapters
champ id
champ volume_id
champ date
Actuellement, voici comment je fais
SELECT projects.*, chapters.date AS last
FROM projects
LEFT JOIN volumes, chapters ON projects.id = volumes.project_id AND
volumes.id = chapters.volume_id
ORDER BY projects.title, last DESC
Ce qui me ressort tous les projets autant de fois qu'il y a de volumes
en tout, avec à chaque fois un "last" différent (seul le premier "last",
c'est à dire le plus récent, m'intéresse)
Bon comme il s'agit d'un site en php je peux dédoublonner avec mais ça
me gêne un peu, il doit sûrement y avoir un moyen de faire mieux.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Ph. B.
loufoque wrote:
Bonjour,
Alors voilà, j'explique un peu ma structure. J'ai des projets, qui peuvent contenir x volumes, chaque volume pouvant contenir y chapitres. Chaque chapitre a une date de parution. Je voudrais lister les projets, et indiquer pour chaque projet la date de parution du dernier chapitre. (x et y peuvent valoir 0, d'où joint externe)
Au niveau tables, ça se passe comme ça
table projects champ id champ title
table volumes champ id champ project_id
table chapters champ id champ volume_id champ date
Actuellement, voici comment je fais SELECT projects.*, chapters.date AS last FROM projects LEFT JOIN volumes, chapters ON projects.id = volumes.project_id AND volumes.id = chapters.volume_id ORDER BY projects.title, last DESC
Ce qui me ressort tous les projets autant de fois qu'il y a de volumes en tout, avec à chaque fois un "last" différent (seul le premier "last", c'est à dire le plus récent, m'intéresse) Bon comme il s'agit d'un site en php je peux dédoublonner avec mais ça me gêne un peu, il doit sûrement y avoir un moyen de faire mieux.
PS : Ça doit fonctionner sur MySQL3.x
Merci d'avance pour votre aide.
Bonsoir,
Sous réserve que MySql accepte:
SELECT p.title, max(c.datec) as last FROM projects p LEFT JOIN volumes v ON p.id = v.project_id LEFT JOIN chapters c ON v.id = c.volume_id GROUP BY p.title ORDER BY last DESC // ou: ORDER BY 2 DESC
-- Philippe.
loufoque wrote:
Bonjour,
Alors voilà, j'explique un peu ma structure.
J'ai des projets, qui peuvent contenir x volumes, chaque volume pouvant
contenir y chapitres. Chaque chapitre a une date de parution.
Je voudrais lister les projets, et indiquer pour chaque projet la date
de parution du dernier chapitre. (x et y peuvent valoir 0, d'où joint
externe)
Au niveau tables, ça se passe comme ça
table projects
champ id
champ title
table volumes
champ id
champ project_id
table chapters
champ id
champ volume_id
champ date
Actuellement, voici comment je fais
SELECT projects.*, chapters.date AS last
FROM projects
LEFT JOIN volumes, chapters ON projects.id = volumes.project_id AND
volumes.id = chapters.volume_id
ORDER BY projects.title, last DESC
Ce qui me ressort tous les projets autant de fois qu'il y a de volumes
en tout, avec à chaque fois un "last" différent (seul le premier "last",
c'est à dire le plus récent, m'intéresse)
Bon comme il s'agit d'un site en php je peux dédoublonner avec mais ça
me gêne un peu, il doit sûrement y avoir un moyen de faire mieux.
PS : Ça doit fonctionner sur MySQL3.x
Merci d'avance pour votre aide.
Bonsoir,
Sous réserve que MySql accepte:
SELECT p.title, max(c.datec) as last
FROM projects p
LEFT JOIN volumes v ON p.id = v.project_id
LEFT JOIN chapters c ON v.id = c.volume_id
GROUP BY p.title
ORDER BY last DESC // ou: ORDER BY 2 DESC
Alors voilà, j'explique un peu ma structure. J'ai des projets, qui peuvent contenir x volumes, chaque volume pouvant contenir y chapitres. Chaque chapitre a une date de parution. Je voudrais lister les projets, et indiquer pour chaque projet la date de parution du dernier chapitre. (x et y peuvent valoir 0, d'où joint externe)
Au niveau tables, ça se passe comme ça
table projects champ id champ title
table volumes champ id champ project_id
table chapters champ id champ volume_id champ date
Actuellement, voici comment je fais SELECT projects.*, chapters.date AS last FROM projects LEFT JOIN volumes, chapters ON projects.id = volumes.project_id AND volumes.id = chapters.volume_id ORDER BY projects.title, last DESC
Ce qui me ressort tous les projets autant de fois qu'il y a de volumes en tout, avec à chaque fois un "last" différent (seul le premier "last", c'est à dire le plus récent, m'intéresse) Bon comme il s'agit d'un site en php je peux dédoublonner avec mais ça me gêne un peu, il doit sûrement y avoir un moyen de faire mieux.
PS : Ça doit fonctionner sur MySQL3.x
Merci d'avance pour votre aide.
Bonsoir,
Sous réserve que MySql accepte:
SELECT p.title, max(c.datec) as last FROM projects p LEFT JOIN volumes v ON p.id = v.project_id LEFT JOIN chapters c ON v.id = c.volume_id GROUP BY p.title ORDER BY last DESC // ou: ORDER BY 2 DESC
-- Philippe.
loufoque
Ph. B. a dit le 01/07/2004 20:39:
Sous réserve que MySql accepte:
il accepte ;)
SELECT p.title, max(c.datec) as last FROM projects p LEFT JOIN volumes v ON p.id = v.project_id LEFT JOIN chapters c ON v.id = c.volume_id GROUP BY p.title ORDER BY last DESC // ou: ORDER BY 2 DESC
Merci beaucoup. C'est exactement ce qu'il me fallait.
Je n'avais pas pensé à la fonction max() (je la connaissais, mais n'avait jamais vraiment trouvé d'utilité pour) Décidemment, il faudrait que je revoie l'utilisation de ce genre de fonctions. Si quelqu'un avait une bonne url à me fournir, ce serait pas mal.
Ph. B. a dit le 01/07/2004 20:39:
Sous réserve que MySql accepte:
il accepte ;)
SELECT p.title, max(c.datec) as last
FROM projects p
LEFT JOIN volumes v ON p.id = v.project_id
LEFT JOIN chapters c ON v.id = c.volume_id
GROUP BY p.title
ORDER BY last DESC // ou: ORDER BY 2 DESC
Merci beaucoup.
C'est exactement ce qu'il me fallait.
Je n'avais pas pensé à la fonction max() (je la connaissais, mais
n'avait jamais vraiment trouvé d'utilité pour)
Décidemment, il faudrait que je revoie l'utilisation de ce genre de
fonctions.
Si quelqu'un avait une bonne url à me fournir, ce serait pas mal.
SELECT p.title, max(c.datec) as last FROM projects p LEFT JOIN volumes v ON p.id = v.project_id LEFT JOIN chapters c ON v.id = c.volume_id GROUP BY p.title ORDER BY last DESC // ou: ORDER BY 2 DESC
Merci beaucoup. C'est exactement ce qu'il me fallait.
Je n'avais pas pensé à la fonction max() (je la connaissais, mais n'avait jamais vraiment trouvé d'utilité pour) Décidemment, il faudrait que je revoie l'utilisation de ce genre de fonctions. Si quelqu'un avait une bonne url à me fournir, ce serait pas mal.
Ph. B.
loufoque wrote:
Ph. B. a dit le 01/07/2004 20:39:
Sous réserve que MySql accepte:
il accepte ;)
SELECT p.title, max(c.datec) as last FROM projects p LEFT JOIN volumes v ON p.id = v.project_id LEFT JOIN chapters c ON v.id = c.volume_id GROUP BY p.title ORDER BY last DESC // ou: ORDER BY 2 DESC
Merci beaucoup. C'est exactement ce qu'il me fallait.
Je n'avais pas pensé à la fonction max() (je la connaissais, mais n'avait jamais vraiment trouvé d'utilité pour) Décidemment, il faudrait que je revoie l'utilisation de ce genre de fonctions. Si quelqu'un avait une bonne url à me fournir, ce serait pas mal.
Mais bien sur que j'ai une bonne URL à te fournir ! ;-) Mon ami Frédéric Brouard sera ravi de te donner toutes les explications sur son site dédié aux SGBD et SQL ! :-) Trève de barvardage, voici le lien ! http://sqlpro.developpez.com/indexSQL.html
-- Philippe.
loufoque wrote:
Ph. B. a dit le 01/07/2004 20:39:
Sous réserve que MySql accepte:
il accepte ;)
SELECT p.title, max(c.datec) as last
FROM projects p
LEFT JOIN volumes v ON p.id = v.project_id
LEFT JOIN chapters c ON v.id = c.volume_id
GROUP BY p.title
ORDER BY last DESC // ou: ORDER BY 2 DESC
Merci beaucoup.
C'est exactement ce qu'il me fallait.
Je n'avais pas pensé à la fonction max() (je la connaissais, mais
n'avait jamais vraiment trouvé d'utilité pour)
Décidemment, il faudrait que je revoie l'utilisation de ce genre de
fonctions.
Si quelqu'un avait une bonne url à me fournir, ce serait pas mal.
Mais bien sur que j'ai une bonne URL à te fournir ! ;-)
Mon ami Frédéric Brouard sera ravi de te donner toutes les explications
sur son site dédié aux SGBD et SQL ! :-)
Trève de barvardage, voici le lien !
http://sqlpro.developpez.com/indexSQL.html
SELECT p.title, max(c.datec) as last FROM projects p LEFT JOIN volumes v ON p.id = v.project_id LEFT JOIN chapters c ON v.id = c.volume_id GROUP BY p.title ORDER BY last DESC // ou: ORDER BY 2 DESC
Merci beaucoup. C'est exactement ce qu'il me fallait.
Je n'avais pas pensé à la fonction max() (je la connaissais, mais n'avait jamais vraiment trouvé d'utilité pour) Décidemment, il faudrait que je revoie l'utilisation de ce genre de fonctions. Si quelqu'un avait une bonne url à me fournir, ce serait pas mal.
Mais bien sur que j'ai une bonne URL à te fournir ! ;-) Mon ami Frédéric Brouard sera ravi de te donner toutes les explications sur son site dédié aux SGBD et SQL ! :-) Trève de barvardage, voici le lien ! http://sqlpro.developpez.com/indexSQL.html
-- Philippe.
Antoine Dinimant
quelle est la signification de last ? je ne le trouve pas dans la doc MySQL.
quelle est la signification de last ? je ne le trouve pas dans la doc MySQL.
quelle est la signification de last ? je ne le trouve pas dans la doc MySQL.
Dans le cas présent, c'est juste un renommage de colonne et pas un mot réservé ou autre...
Ex.: SELECT ID, Nom AS NouveauNom FROM MaTable
ID | NouveauNom ------+----------- 1 | Toto 2 | Titi 15 | Tata etc...
-- Philippe.
Fred BROUARD - SQLpro
Alors il y a une erreur fondamentale de modélisation !
EN effet rien n'indique dans tes définitions ce qui permet de déterminer quel est le dernier chapitre....
Et ne va pas me dire que le dernier chapitre c'est celui qui à l'id le plus élevé, c'est faux...
A +
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
loufoque a écrit:
Bonjour,
Alors voilà, j'explique un peu ma structure. J'ai des projets, qui peuvent contenir x volumes, chaque volume pouvant contenir y chapitres. Chaque chapitre a une date de parution. Je voudrais lister les projets, et indiquer pour chaque projet la date de parution du dernier chapitre. (x et y peuvent valoir 0, d'où joint externe)
Au niveau tables, ça se passe comme ça
table projects champ id champ title
table volumes champ id champ project_id
table chapters champ id champ volume_id champ date
Actuellement, voici comment je fais SELECT projects.*, chapters.date AS last FROM projects LEFT JOIN volumes, chapters ON projects.id = volumes.project_id AND volumes.id = chapters.volume_id ORDER BY projects.title, last DESC
Ce qui me ressort tous les projets autant de fois qu'il y a de volumes en tout, avec à chaque fois un "last" différent (seul le premier "last", c'est à dire le plus récent, m'intéresse) Bon comme il s'agit d'un site en php je peux dédoublonner avec mais ça me gêne un peu, il doit sûrement y avoir un moyen de faire mieux.
PS : Ça doit fonctionner sur MySQL3.x
Merci d'avance pour votre aide.
Alors il y a une erreur fondamentale de modélisation !
EN effet rien n'indique dans tes définitions ce qui permet de déterminer quel
est le dernier chapitre....
Et ne va pas me dire que le dernier chapitre c'est celui qui à l'id le plus
élevé, c'est faux...
A +
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
loufoque a écrit:
Bonjour,
Alors voilà, j'explique un peu ma structure.
J'ai des projets, qui peuvent contenir x volumes, chaque volume pouvant
contenir y chapitres. Chaque chapitre a une date de parution.
Je voudrais lister les projets, et indiquer pour chaque projet la date
de parution du dernier chapitre. (x et y peuvent valoir 0, d'où joint
externe)
Au niveau tables, ça se passe comme ça
table projects
champ id
champ title
table volumes
champ id
champ project_id
table chapters
champ id
champ volume_id
champ date
Actuellement, voici comment je fais
SELECT projects.*, chapters.date AS last
FROM projects
LEFT JOIN volumes, chapters ON projects.id = volumes.project_id AND
volumes.id = chapters.volume_id
ORDER BY projects.title, last DESC
Ce qui me ressort tous les projets autant de fois qu'il y a de volumes
en tout, avec à chaque fois un "last" différent (seul le premier "last",
c'est à dire le plus récent, m'intéresse)
Bon comme il s'agit d'un site en php je peux dédoublonner avec mais ça
me gêne un peu, il doit sûrement y avoir un moyen de faire mieux.
Alors il y a une erreur fondamentale de modélisation !
EN effet rien n'indique dans tes définitions ce qui permet de déterminer quel est le dernier chapitre....
Et ne va pas me dire que le dernier chapitre c'est celui qui à l'id le plus élevé, c'est faux...
A +
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
loufoque a écrit:
Bonjour,
Alors voilà, j'explique un peu ma structure. J'ai des projets, qui peuvent contenir x volumes, chaque volume pouvant contenir y chapitres. Chaque chapitre a une date de parution. Je voudrais lister les projets, et indiquer pour chaque projet la date de parution du dernier chapitre. (x et y peuvent valoir 0, d'où joint externe)
Au niveau tables, ça se passe comme ça
table projects champ id champ title
table volumes champ id champ project_id
table chapters champ id champ volume_id champ date
Actuellement, voici comment je fais SELECT projects.*, chapters.date AS last FROM projects LEFT JOIN volumes, chapters ON projects.id = volumes.project_id AND volumes.id = chapters.volume_id ORDER BY projects.title, last DESC
Ce qui me ressort tous les projets autant de fois qu'il y a de volumes en tout, avec à chaque fois un "last" différent (seul le premier "last", c'est à dire le plus récent, m'intéresse) Bon comme il s'agit d'un site en php je peux dédoublonner avec mais ça me gêne un peu, il doit sûrement y avoir un moyen de faire mieux.
PS : Ça doit fonctionner sur MySQL3.x
Merci d'avance pour votre aide.
Fred BROUARD - SQLpro
et max n'est pas une fonction, au sens propre du terme, mais une méthode de construction d'agrégat statistique !
A +
loufoque a écrit:
Ph. B. a dit le 01/07/2004 20:39:
Sous réserve que MySql accepte:
il accepte ;)
SELECT p.title, max(c.datec) as last FROM projects p LEFT JOIN volumes v ON p.id = v.project_id LEFT JOIN chapters c ON v.id = c.volume_id GROUP BY p.title ORDER BY last DESC // ou: ORDER BY 2 DESC
Merci beaucoup. C'est exactement ce qu'il me fallait.
Je n'avais pas pensé à la fonction max() (je la connaissais, mais n'avait jamais vraiment trouvé d'utilité pour) Décidemment, il faudrait que je revoie l'utilisation de ce genre de fonctions. Si quelqu'un avait une bonne url à me fournir, ce serait pas mal.
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
et max n'est pas une fonction, au sens propre du terme, mais une méthode de
construction d'agrégat statistique !
A +
loufoque a écrit:
Ph. B. a dit le 01/07/2004 20:39:
Sous réserve que MySql accepte:
il accepte ;)
SELECT p.title, max(c.datec) as last
FROM projects p
LEFT JOIN volumes v ON p.id = v.project_id
LEFT JOIN chapters c ON v.id = c.volume_id
GROUP BY p.title
ORDER BY last DESC // ou: ORDER BY 2 DESC
Merci beaucoup.
C'est exactement ce qu'il me fallait.
Je n'avais pas pensé à la fonction max() (je la connaissais, mais
n'avait jamais vraiment trouvé d'utilité pour)
Décidemment, il faudrait que je revoie l'utilisation de ce genre de
fonctions.
Si quelqu'un avait une bonne url à me fournir, ce serait pas mal.
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
et max n'est pas une fonction, au sens propre du terme, mais une méthode de construction d'agrégat statistique !
A +
loufoque a écrit:
Ph. B. a dit le 01/07/2004 20:39:
Sous réserve que MySql accepte:
il accepte ;)
SELECT p.title, max(c.datec) as last FROM projects p LEFT JOIN volumes v ON p.id = v.project_id LEFT JOIN chapters c ON v.id = c.volume_id GROUP BY p.title ORDER BY last DESC // ou: ORDER BY 2 DESC
Merci beaucoup. C'est exactement ce qu'il me fallait.
Je n'avais pas pensé à la fonction max() (je la connaissais, mais n'avait jamais vraiment trouvé d'utilité pour) Décidemment, il faudrait que je revoie l'utilisation de ce genre de fonctions. Si quelqu'un avait une bonne url à me fournir, ce serait pas mal.
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
Fred BROUARD - SQLpro
et max n'est pas une fonction, au sens propre du terme, mais une méthode de construction d'agrégat statistique !
A +
loufoque a écrit:
Ph. B. a dit le 01/07/2004 20:39:
Sous réserve que MySql accepte:
il accepte ;)
SELECT p.title, max(c.datec) as last FROM projects p LEFT JOIN volumes v ON p.id = v.project_id LEFT JOIN chapters c ON v.id = c.volume_id GROUP BY p.title ORDER BY last DESC // ou: ORDER BY 2 DESC
Merci beaucoup. C'est exactement ce qu'il me fallait.
Je n'avais pas pensé à la fonction max() (je la connaissais, mais n'avait jamais vraiment trouvé d'utilité pour) Décidemment, il faudrait que je revoie l'utilisation de ce genre de fonctions. Si quelqu'un avait une bonne url à me fournir, ce serait pas mal.
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
et max n'est pas une fonction, au sens propre du terme, mais une méthode de
construction d'agrégat statistique !
A +
loufoque a écrit:
Ph. B. a dit le 01/07/2004 20:39:
Sous réserve que MySql accepte:
il accepte ;)
SELECT p.title, max(c.datec) as last
FROM projects p
LEFT JOIN volumes v ON p.id = v.project_id
LEFT JOIN chapters c ON v.id = c.volume_id
GROUP BY p.title
ORDER BY last DESC // ou: ORDER BY 2 DESC
Merci beaucoup.
C'est exactement ce qu'il me fallait.
Je n'avais pas pensé à la fonction max() (je la connaissais, mais
n'avait jamais vraiment trouvé d'utilité pour)
Décidemment, il faudrait que je revoie l'utilisation de ce genre de
fonctions.
Si quelqu'un avait une bonne url à me fournir, ce serait pas mal.
--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************
et max n'est pas une fonction, au sens propre du terme, mais une méthode de construction d'agrégat statistique !
A +
loufoque a écrit:
Ph. B. a dit le 01/07/2004 20:39:
Sous réserve que MySql accepte:
il accepte ;)
SELECT p.title, max(c.datec) as last FROM projects p LEFT JOIN volumes v ON p.id = v.project_id LEFT JOIN chapters c ON v.id = c.volume_id GROUP BY p.title ORDER BY last DESC // ou: ORDER BY 2 DESC
Merci beaucoup. C'est exactement ce qu'il me fallait.
Je n'avais pas pensé à la fonction max() (je la connaissais, mais n'avait jamais vraiment trouvé d'utilité pour) Décidemment, il faudrait que je revoie l'utilisation de ce genre de fonctions. Si quelqu'un avait une bonne url à me fournir, ce serait pas mal.
-- Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com ************************ www.datasapiens.com *************************
loufoque
Fred BROUARD - SQLpro a dit le 02/07/2004 17:26:
Alors il y a une erreur fondamentale de modélisation !
EN effet rien n'indique dans tes définitions ce qui permet de déterminer quel est le dernier chapitre.....
Si, le champ date. Enfin on parle du dernier chapitre *paru*, pas du dernier chapitre dans le volume. Pour ça, j'ai d'autres champs que je n'ai pas indiqués.
Et ne va pas me dire que le dernier chapitre c'est celui qui à l'id le plus élevé, c'est faux...
Un id n'est rien de plus qu'un identifiant unique. Ce serait une grave erreur de s'en servir pour un tri, même si avec MySQL l'id est auto-incréménté.
Fred BROUARD - SQLpro a dit le 02/07/2004 17:26:
Alors il y a une erreur fondamentale de modélisation !
EN effet rien n'indique dans tes définitions ce qui permet de déterminer
quel est le dernier chapitre.....
Si, le champ date.
Enfin on parle du dernier chapitre *paru*, pas du dernier chapitre dans
le volume. Pour ça, j'ai d'autres champs que je n'ai pas indiqués.
Et ne va pas me dire que le dernier chapitre c'est celui qui à l'id le
plus élevé, c'est faux...
Un id n'est rien de plus qu'un identifiant unique. Ce serait une grave
erreur de s'en servir pour un tri, même si avec MySQL l'id est
auto-incréménté.
Alors il y a une erreur fondamentale de modélisation !
EN effet rien n'indique dans tes définitions ce qui permet de déterminer quel est le dernier chapitre.....
Si, le champ date. Enfin on parle du dernier chapitre *paru*, pas du dernier chapitre dans le volume. Pour ça, j'ai d'autres champs que je n'ai pas indiqués.
Et ne va pas me dire que le dernier chapitre c'est celui qui à l'id le plus élevé, c'est faux...
Un id n'est rien de plus qu'un identifiant unique. Ce serait une grave erreur de s'en servir pour un tri, même si avec MySQL l'id est auto-incréménté.