[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'