8791 sujets

Développement web côté serveur, CMS

Hello,

Voila mon problème: j'aimerais faire une requête SQL en chargeant le contenu de la "table_1" mais en ne sélectionnant, dans la table 1, que les ID correspondant à la "table_2" et dans l'ordre de "position" présent dans la "table_2".

Ça donnerais:
SELECT ID,v_title,v_client,v_comment,v_vimeo FROM TB_video
WHERE p_id_video=ID
ORDER BY p_position.

C'est à partir du WHERE que je perds.
Le problème, c'est mon manque de connaissances en matière de gestions/fusion/autre de deux tables.

Ma question: est-ce que quelqu'un pourrait m'aider à formuler correctement ma requête?

Merci d'avance !
Cordialement, Charly
Modifié par Chum (06 Oct 2011 - 17:30)
Si je comprends bien ce que tu cherches à faire ça devrait donner quelque chose comme ça point de vue syntaxe :
SELECT table1.* FROM table1 RIGHT JOIN table2 ON table2.foreign_id = table1.id ORDER BY table2.id
Hello moust,
Merci pour ton aide!

A haute teneur de vue de nez, il me semble que oui.
Avec cette requête, je pourrai sortir tous les champs de la table 1 qui on été trier par un "while" tout simple ?

RIGHT JOIN ... ON sont lier ?

Moi j'ai une colone avec l'id qui dois être en lien: "p_id_video", est-ce que foreign_id fonctionnera aussi avec ? ça donnerais: p_id_video.foreign_id ?

Merci encore d'avoir pris du temps pour moi !

Comment on appel ce domaine ? Jointure de table ? Histoire que j'aille me trouvé de la doc pour apprendre.

Cordialement, Charly
Hello,
Je viens de faire les testes. J'ai un problème avec le foreign_id.
J'ai beau chercher sur google mais je trouve pas ce que ça veut dire.

Voici l'erreur:
Erreur SQL !
SELECT TB_video.ID,v_title,v_client,v_comment,v_vimeo FROM TB_video RIGHT JOIN TB_pages ON TB_pages.foreign_ID = TB_video.ID ORDER BY TB_pages.p_position
Unknown column 'TB_pages.foreign_ID' in 'on clause'


Est-ce que quelqu'un pourrais m'aider ?!

Merci beaucoup !
Cordialement, Charly

_______________________________________________________________________
EDIT

En faisant la requête SQL comme ceci:
SELECT TB_video.ID,v_title,v_client,v_comment,v_vimeo FROM TB_video RIGHT JOIN TB_pages ON TB_pages.ID = TB_video.ID ORDER BY TB_pages.p_position


Donc en enlevant foreign_ID et le remplaçant par ID (le nom de ma colone): ça marche.

C'était quoi en fait ce "foreign" ?

Merci pour m'avoir mis sur la bonne voie !
Charly
Modifié par Chum (10 Oct 2011 - 09:43)
"foreign_id" était un nom arbitraire pour la colonne faisant référence à l'id de la table primaire. Donc "ID" dans ton cas.
En anglais "foreign" veut dire "étranger/ère". Smiley cligne

Pour en savoir plus sur les jointures (et notamment comprendre pourquoi "RIGHT JOIN") :
http://sqlpro.developpez.com/cours/sqlaz/jointures/
Modifié par moust (10 Oct 2011 - 14:23)