[MySQL] pb requete imbriquée

Bonjour,

Voilà, je me fabrique une blog et j’ai un problème avec la navigation par catégorie.
J’ai 2 tables sous mysql :

  • billet (id_billet, …, id_billetcat, …)
  • billetcat (id_billetcat, …, title_url, …)

Je souhaiterais selectionner toutes les lignes de la table billet qui appartiennent à la categorie truc. Seulement, la table billet ne contient que l’id correspondant à l’id de la table billetcat (où est stockée la valeur ‹ truc ›)…

J’ai essayé ça :

SELECT * FROM neutron_billet WHERE id_billetcat IN (SELECT id_billetcat FROM neutron_billetcat WHERE title_url = ‹ truc ›)

Mais ça me renvoie :

#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'SELECT id_billetcat
FROM billetcat
WHERE title_url

Je souhaiterais que la requete tienne en une seule ligne… j’imagine que c’est possible ?!! help

ne pas mettre des ` tout cochon de myadmin (d’après sans nom) :slight_smile:

J’ai pris l’habitude d’en mettre y’a pas mal de temps, ça me pose pas de problème… pourquoi faut pas en mettre ?

C’est une invention de mySQL, c’est pas standard (par rapport à SQL).

Plutôt " si tu veux. Mais bref, ça sert à rien si ton nom de champ n’est pas spécial (caractères spéciaux, genre espace, ou encore nom de champ = mot clef).

Ta requête est bonne, mais mySQL ne dois pas le supporter chez toi; ça vient avec mySQL 4.1 donc bon…

Et ça :

SELECT *
FROM neutron_billet N
INNER JOIN neutron_billetcat E ON E.id_billetcat = N.id_billetcat
WHERE E.title_url = 'truc'

?

(faut voir si ça correspond à ce que tu veux)

LA perfection, ça a marché du premier coup :wink:

Merci !!!!!

Maintenant, je vais plonger dans le manuel mysql, histoire de comprendre les mots magiques… sinon ok pour les ‹  ›, si je peux m’en passer, ça fait toujours ça en moins à taper ;).

++

Si tu veux faire du moins propre mais tout aussi correct et surtout plus facile à conceptualiser:

SELECT N.*
FROM neutron_billet N, neutron_billetcat E
WHERE N.id_billetcat=E.id_billecat
AND e.title_url = 'truc'