par
ouckileou » 18 mars 2007, 21:08
Je vois pas la différence entre le premier et le deuxième problème, si ce n'est que ce ne sont pas les mêmes mots-clés
Tu as bien modélise les tables, en utilisant une table de relation, mais pourquoi ne pas manipuler directement les chaînes recherchées, plutôt que les indices ? C'est un peu l'intérêt d'une bdd :
Code : Tout sélectionner
SELECT li.id_livre
FROM livres li
INNER JOIN liaison ls ON li.idlivre = ls.id_livre
INNER JOIN mots-cles mc ON ls.IDMOTCLE = mc.ID_MOTCLE
WHERE mc.MOTCLE = 'krach' OR mc.MOTCLE = 'zouave'
J'ai mis ici INNER JOIN, puisque tu veux les livres qui ont des relations dans la table liaison et mots-clés à chaque fois, la jointure gauche sert à obtenir toute les lignes même celles qui ne satisfont pas la condition de jointure.
(au cas où, je travaille pour l'instant avec Easyphp et phpMyAdmin 2.5.3)
Au passage, EasyPHP est un package contenant Apache, MySQL, PHP et phpMyAdmin. phpMyAdmin est une
interface pour MySQl, c'est tout.
Une vraie info utile pour un problème lié au base de données/SQL est la version du SGBD, ici MySQL. Ici à la rigueur, celle de easyPHP, qui permet de retrouver celle de MySQL. Mais la version de phpMyAdmin n'a aucun impact sur tes requêtes.
Je vois pas la différence entre le premier et le deuxième problème, si ce n'est que ce ne sont pas les mêmes mots-clés :roll: :?:
Tu as bien modélise les tables, en utilisant une table de relation, mais pourquoi ne pas manipuler directement les chaînes recherchées, plutôt que les indices ? C'est un peu l'intérêt d'une bdd :
[code]
SELECT li.id_livre
FROM livres li
INNER JOIN liaison ls ON li.idlivre = ls.id_livre
INNER JOIN mots-cles mc ON ls.IDMOTCLE = mc.ID_MOTCLE
WHERE mc.MOTCLE = 'krach' OR mc.MOTCLE = 'zouave'[/code]
J'ai mis ici INNER JOIN, puisque tu veux les livres qui ont des relations dans la table liaison et mots-clés à chaque fois, la jointure gauche sert à obtenir toute les lignes même celles qui ne satisfont pas la condition de jointure.
[quote="Ferdinant"]
(au cas où, je travaille pour l'instant avec Easyphp et phpMyAdmin 2.5.3)
[/quote]
Au passage, EasyPHP est un package contenant Apache, MySQL, PHP et phpMyAdmin. phpMyAdmin est une [b]interface[/b] pour MySQl, c'est tout.
Une vraie info utile pour un problème lié au base de données/SQL est la version du SGBD, ici MySQL. Ici à la rigueur, celle de easyPHP, qui permet de retrouver celle de MySQL. Mais la version de phpMyAdmin n'a aucun impact sur tes requêtes.