j'ai une table article avec le champ nonews....
j'ai une table liens avec le champ nonews....
j'ai une table composants avec le champ nonews....
j'ai une table livre avec le champ nonews....
j'ai tenté d'aller cherche tous les info des tables qui sont des news
avec cette requete:
SELECT art_titre, art_texte, com_lien, com_nom, liv_titre, lie_nom,
lie_lien
FROM news
INNER JOIN article ON article.new_nonews = news.new_nonews
INNER JOIN livre ON livre .new_nonews = news.new_nonews
INNER JOIN liens ON liens .new_nonews = news.new_nonews
INNER JOIN composant ON composant .new_nonews = news.new_nonews
order by news.new_nonews;
sous phpadmin, lorsque je fais exécuter cette requete,
il me sort ça comme la requête:
SELECT *
FROM news
il n'y a donc pas les autres info des tabes...
et en php, je fais appel à cette requete et vue qu'il me sort que les
éléments de news... il me retourne donc rien:
function returnews()
{
echo '<div id="main"><table>';
$requete = mysql_query("SELECT art_titre, art_texte, com_lien,
com_nom, liv_titre, lie_nom, lie_lien FROM news INNER JOIN article ON
article.new_nonews = news.new_nonews INNER JOIN livre ON livre
.new_nonews = news.new_nonews INNER JOIN liens ON liens .new_nonews =
news.new_nonews INNER JOIN composant ON composant .new_nonews =
news.new_nonews order by news.new_nonews;");
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
Antoine Dinimant
Marc Collin a écrit:
j'ai une table news avec le champ nonews....
j'ai une table article avec le champ nonews.... j'ai une table liens avec le champ nonews....
(...)
d'après ta requête, il s'agirait plutôt d'un champ new_nonews
j'ai tenté d'aller cherche tous les info des tables qui sont des news avec cette requete:
SELECT art_titre, art_texte, com_lien, com_nom, liv_titre, lie_nom, lie_lien FROM news INNER JOIN article ON article.new_nonews = news.new_nonews INNER JOIN livre ON livre .new_nonews = news.new_nonews INNER JOIN liens ON liens .new_nonews = news.new_nonews INNER JOIN composant ON composant .new_nonews = news.new_nonews order by news.new_nonews;
tu ne fais que des INNER JOIN, donc pour qu'une news apparaisse il faut qu'elle soit référencée dans TOUTES les autres tables... est-ce le cas ? sinon, je suppose qu'avec des LEFT OUTER JOIN ça passerait mieux...
Marc Collin a écrit:
j'ai une table news avec le champ nonews....
j'ai une table article avec le champ nonews....
j'ai une table liens avec le champ nonews....
(...)
d'après ta requête, il s'agirait plutôt d'un champ new_nonews
j'ai tenté d'aller cherche tous les info des tables qui sont des news
avec cette requete:
SELECT art_titre, art_texte, com_lien, com_nom, liv_titre, lie_nom,
lie_lien
FROM news
INNER JOIN article ON article.new_nonews = news.new_nonews
INNER JOIN livre ON livre .new_nonews = news.new_nonews
INNER JOIN liens ON liens .new_nonews = news.new_nonews
INNER JOIN composant ON composant .new_nonews = news.new_nonews
order by news.new_nonews;
tu ne fais que des INNER JOIN, donc pour qu'une news apparaisse il faut
qu'elle soit référencée dans TOUTES les autres tables... est-ce le cas ?
sinon, je suppose qu'avec des LEFT OUTER JOIN ça passerait mieux...
j'ai une table article avec le champ nonews.... j'ai une table liens avec le champ nonews....
(...)
d'après ta requête, il s'agirait plutôt d'un champ new_nonews
j'ai tenté d'aller cherche tous les info des tables qui sont des news avec cette requete:
SELECT art_titre, art_texte, com_lien, com_nom, liv_titre, lie_nom, lie_lien FROM news INNER JOIN article ON article.new_nonews = news.new_nonews INNER JOIN livre ON livre .new_nonews = news.new_nonews INNER JOIN liens ON liens .new_nonews = news.new_nonews INNER JOIN composant ON composant .new_nonews = news.new_nonews order by news.new_nonews;
tu ne fais que des INNER JOIN, donc pour qu'une news apparaisse il faut qu'elle soit référencée dans TOUTES les autres tables... est-ce le cas ? sinon, je suppose qu'avec des LEFT OUTER JOIN ça passerait mieux...
Fred BROUARD - SQLpro
outre les innner join qui font que seul les news présente dans toutes les tables sont récupérées, le tri est externe !
essaye déjà :
SELECT art_titre, art_texte, com_lien, com_nom, liv_titre, lie_nom, lie_lien FROM news n LETF OUTER JOIN article a ON a.new_nonews = n.new_nonews LETF OUTER JOIN livre lv ON lv.new_nonews = n.new_nonews LETF OUTER JOIN liens ln ON ln.new_nonews = n.new_nonews LETF OUTER JOIN composant c ON c.new_nonews = n.new_nonews
Sans clause ORDER BY
En principe pour trier il faut que la colonne soit présente dans la clause SELECT de l'ordre SELECT.
A +
-- Frédéric BROUARD, MVP MS SQL Server. Expert Langage SQL / 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 *************************
Marc Collin a écrit:
salut
avec mysql,
j'ai une table news avec le champ nonews....
j'ai une table article avec le champ nonews.... j'ai une table liens avec le champ nonews.... j'ai une table composants avec le champ nonews.... j'ai une table livre avec le champ nonews....
j'ai tenté d'aller cherche tous les info des tables qui sont des news avec cette requete:
SELECT art_titre, art_texte, com_lien, com_nom, liv_titre, lie_nom, lie_lien FROM news INNER JOIN article ON article.new_nonews = news.new_nonews INNER JOIN livre ON livre .new_nonews = news.new_nonews INNER JOIN liens ON liens .new_nonews = news.new_nonews INNER JOIN composant ON composant .new_nonews = news.new_nonews order by news.new_nonews;
sous phpadmin, lorsque je fais exécuter cette requete,
il me sort ça comme la requête: SELECT * FROM news
il n'y a donc pas les autres info des tabes...
et en php, je fais appel à cette requete et vue qu'il me sort que les éléments de news... il me retourne donc rien:
function returnews() { echo '<div id="main"><table>'; $requete = mysql_query("SELECT art_titre, art_texte, com_lien, com_nom, liv_titre, lie_nom, lie_lien FROM news INNER JOIN article ON article.new_nonews = news.new_nonews INNER JOIN livre ON livre .new_nonews = news.new_nonews INNER JOIN liens ON liens .new_nonews = news.new_nonews INNER JOIN composant ON composant .new_nonews = news.new_nonews order by news.new_nonews;");
outre les innner join qui font que seul les news présente dans toutes les tables sont récupérées, le tri est externe !
essaye déjà :
SELECT art_titre, art_texte, com_lien, com_nom, liv_titre, lie_nom,
lie_lien
FROM news n
LETF OUTER JOIN article a
ON a.new_nonews = n.new_nonews
LETF OUTER JOIN livre lv
ON lv.new_nonews = n.new_nonews
LETF OUTER JOIN liens ln
ON ln.new_nonews = n.new_nonews
LETF OUTER JOIN composant c
ON c.new_nonews = n.new_nonews
Sans clause ORDER BY
En principe pour trier il faut que la colonne soit présente dans la clause SELECT de l'ordre SELECT.
A +
--
Frédéric BROUARD, MVP MS SQL Server. Expert Langage SQL / 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 *************************
Marc Collin a écrit:
salut
avec mysql,
j'ai une table news avec le champ nonews....
j'ai une table article avec le champ nonews....
j'ai une table liens avec le champ nonews....
j'ai une table composants avec le champ nonews....
j'ai une table livre avec le champ nonews....
j'ai tenté d'aller cherche tous les info des tables qui sont des news
avec cette requete:
SELECT art_titre, art_texte, com_lien, com_nom, liv_titre, lie_nom,
lie_lien
FROM news
INNER JOIN article ON article.new_nonews = news.new_nonews
INNER JOIN livre ON livre .new_nonews = news.new_nonews
INNER JOIN liens ON liens .new_nonews = news.new_nonews
INNER JOIN composant ON composant .new_nonews = news.new_nonews
order by news.new_nonews;
sous phpadmin, lorsque je fais exécuter cette requete,
il me sort ça comme la requête:
SELECT *
FROM news
il n'y a donc pas les autres info des tabes...
et en php, je fais appel à cette requete et vue qu'il me sort que les
éléments de news... il me retourne donc rien:
function returnews()
{
echo '<div id="main"><table>';
$requete = mysql_query("SELECT art_titre, art_texte, com_lien,
com_nom, liv_titre, lie_nom, lie_lien FROM news INNER JOIN article ON
article.new_nonews = news.new_nonews INNER JOIN livre ON livre
.new_nonews = news.new_nonews INNER JOIN liens ON liens .new_nonews =
news.new_nonews INNER JOIN composant ON composant .new_nonews =
news.new_nonews order by news.new_nonews;");
outre les innner join qui font que seul les news présente dans toutes les tables sont récupérées, le tri est externe !
essaye déjà :
SELECT art_titre, art_texte, com_lien, com_nom, liv_titre, lie_nom, lie_lien FROM news n LETF OUTER JOIN article a ON a.new_nonews = n.new_nonews LETF OUTER JOIN livre lv ON lv.new_nonews = n.new_nonews LETF OUTER JOIN liens ln ON ln.new_nonews = n.new_nonews LETF OUTER JOIN composant c ON c.new_nonews = n.new_nonews
Sans clause ORDER BY
En principe pour trier il faut que la colonne soit présente dans la clause SELECT de l'ordre SELECT.
A +
-- Frédéric BROUARD, MVP MS SQL Server. Expert Langage SQL / 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 *************************
Marc Collin a écrit:
salut
avec mysql,
j'ai une table news avec le champ nonews....
j'ai une table article avec le champ nonews.... j'ai une table liens avec le champ nonews.... j'ai une table composants avec le champ nonews.... j'ai une table livre avec le champ nonews....
j'ai tenté d'aller cherche tous les info des tables qui sont des news avec cette requete:
SELECT art_titre, art_texte, com_lien, com_nom, liv_titre, lie_nom, lie_lien FROM news INNER JOIN article ON article.new_nonews = news.new_nonews INNER JOIN livre ON livre .new_nonews = news.new_nonews INNER JOIN liens ON liens .new_nonews = news.new_nonews INNER JOIN composant ON composant .new_nonews = news.new_nonews order by news.new_nonews;
sous phpadmin, lorsque je fais exécuter cette requete,
il me sort ça comme la requête: SELECT * FROM news
il n'y a donc pas les autres info des tabes...
et en php, je fais appel à cette requete et vue qu'il me sort que les éléments de news... il me retourne donc rien:
function returnews() { echo '<div id="main"><table>'; $requete = mysql_query("SELECT art_titre, art_texte, com_lien, com_nom, liv_titre, lie_nom, lie_lien FROM news INNER JOIN article ON article.new_nonews = news.new_nonews INNER JOIN livre ON livre .new_nonews = news.new_nonews INNER JOIN liens ON liens .new_nonews = news.new_nonews INNER JOIN composant ON composant .new_nonews = news.new_nonews order by news.new_nonews;");
outre les innner join qui font que seul les news présente dans toutes les tables sont récupérées, le tri est externe !
essaye déjà :
SELECT art_titre, art_texte, com_lien, com_nom, liv_titre, lie_nom, lie_lien FROM news n LETF OUTER JOIN article a ON a.new_nonews = n.new_nonews LETF OUTER JOIN livre lv ON lv.new_nonews = n.new_nonews LETF OUTER JOIN liens ln ON ln.new_nonews = n.new_nonews LETF OUTER JOIN composant c ON c.new_nonews = n.new_nonews
Sans clause ORDER BY
En principe pour trier il faut que la colonne soit présente dans la clause SELECT de l'ordre SELECT.
A +
merci à vous deux, ça fonctionne
je voudrais rajouter un truc...
sachant que dans les tables:
article, livre, liens, composant j'ai un champ sou_nosousection
et que dans ma table soussection j'ai un champ, sou_sousection et sec_nosection
et que dans ma table section j'ai un champ sec_nosection et sec_nomsection
je voudrais donc afficher le nom de la section pour chaque donnée retourné de la requete que vous avez créer
SELECT a1.art_titre, c1.com_lien, c1.com_nom, lv1.liv_titre, ln1.lie_nom, ln1.lie_lien, sec_nomsection FROM news n, soussection ss,section s LEFT OUTER JOIN article a1 ON a1.new_nonews = n.new_nonews LEFT OUTER JOIN livre lv1 ON lv1.new_nonews = n.new_nonews LEFT OUTER JOIN liens ln1 ON ln1.new_nonews = n.new_nonews LEFT OUTER JOIN composant c1 ON c1.new_nonews = n.new_nonews inner JOIN article a2 ON a2.sou_nosoussection = ss.sou_nosoussection inner JOIN livre lv2 ON lv2.sou_nosoussection = ss.sou_nosoussection inner JOIN liens ln2 ON ln2.sou_nosoussection = ss.sou_nosoussection inner JOIN composant c2 ON c2.sou_nosoussection = ss.sou_nosoussection inner JOIN soussection ON ss.sec_nosection = s.sec_nosection
mais les données sorte en triple...
encore pire avec:
SELECT a1.art_titre, c1.com_lien, c1.com_nom, lv1.liv_titre, ln1.lie_nom, ln1.lie_lien, sec_nomsection FROM news n, soussection ss, section s LEFT OUTER JOIN article a1 ON a1.new_nonews = n.new_nonews LEFT OUTER JOIN livre lv1 ON lv1.new_nonews = n.new_nonews LEFT OUTER JOIN liens ln1 ON ln1.new_nonews = n.new_nonews LEFT OUTER JOIN composant c1 ON c1.new_nonews = n.new_nonews LEFT OUTER JOIN article a2 ON a2.sou_nosoussection = ss.sou_nosoussection LEFT OUTER JOIN livre lv2 ON lv2.sou_nosoussection = ss.sou_nosoussection LEFT OUTER JOIN liens ln2 ON ln2.sou_nosoussection = ss.sou_nosoussection LEFT OUTER JOIN composant c2 ON c2.sou_nosoussection = ss.sou_nosoussection INNER JOIN soussection ON ss.sec_nosection = s.sec_nosection
je m'attendais avoir le résultat escompté avec la première solution...
-- Borland rulez http://pages.infinit.net/borland
Fred BROUARD - SQLpro wrote:
outre les innner join qui font que seul les news présente dans toutes
les tables sont récupérées, le tri est externe !
essaye déjà :
SELECT art_titre, art_texte, com_lien, com_nom, liv_titre, lie_nom,
lie_lien
FROM news n
LETF OUTER JOIN article a
ON a.new_nonews = n.new_nonews
LETF OUTER JOIN livre lv
ON lv.new_nonews = n.new_nonews
LETF OUTER JOIN liens ln
ON ln.new_nonews = n.new_nonews
LETF OUTER JOIN composant c
ON c.new_nonews = n.new_nonews
Sans clause ORDER BY
En principe pour trier il faut que la colonne soit présente dans la
clause SELECT de l'ordre SELECT.
A +
merci à vous deux, ça fonctionne
je voudrais rajouter un truc...
sachant que dans les tables:
article, livre, liens, composant j'ai un champ sou_nosousection
et que dans ma table soussection j'ai un champ, sou_sousection et
sec_nosection
et que dans ma table section j'ai un champ sec_nosection et sec_nomsection
je voudrais donc afficher le nom de la section pour chaque donnée
retourné de la requete que vous avez créer
SELECT a1.art_titre, c1.com_lien, c1.com_nom, lv1.liv_titre,
ln1.lie_nom, ln1.lie_lien, sec_nomsection
FROM news n, soussection ss,section s
LEFT OUTER JOIN article a1
ON a1.new_nonews = n.new_nonews
LEFT OUTER JOIN livre lv1
ON lv1.new_nonews = n.new_nonews
LEFT OUTER JOIN liens ln1
ON ln1.new_nonews = n.new_nonews
LEFT OUTER JOIN composant c1
ON c1.new_nonews = n.new_nonews
inner JOIN article a2
ON a2.sou_nosoussection = ss.sou_nosoussection
inner JOIN livre lv2
ON lv2.sou_nosoussection = ss.sou_nosoussection
inner JOIN liens ln2
ON ln2.sou_nosoussection = ss.sou_nosoussection
inner JOIN composant c2
ON c2.sou_nosoussection = ss.sou_nosoussection
inner JOIN soussection
ON ss.sec_nosection = s.sec_nosection
mais les données sorte en triple...
encore pire avec:
SELECT a1.art_titre, c1.com_lien, c1.com_nom, lv1.liv_titre,
ln1.lie_nom, ln1.lie_lien, sec_nomsection
FROM news n, soussection ss, section s
LEFT OUTER JOIN article a1 ON a1.new_nonews = n.new_nonews
LEFT OUTER JOIN livre lv1 ON lv1.new_nonews = n.new_nonews
LEFT OUTER JOIN liens ln1 ON ln1.new_nonews = n.new_nonews
LEFT OUTER JOIN composant c1 ON c1.new_nonews = n.new_nonews
LEFT OUTER JOIN article a2 ON a2.sou_nosoussection = ss.sou_nosoussection
LEFT OUTER JOIN livre lv2 ON lv2.sou_nosoussection = ss.sou_nosoussection
LEFT OUTER JOIN liens ln2 ON ln2.sou_nosoussection = ss.sou_nosoussection
LEFT OUTER JOIN composant c2 ON c2.sou_nosoussection =
ss.sou_nosoussection
INNER JOIN soussection ON ss.sec_nosection = s.sec_nosection
je m'attendais avoir le résultat escompté avec la première solution...
outre les innner join qui font que seul les news présente dans toutes les tables sont récupérées, le tri est externe !
essaye déjà :
SELECT art_titre, art_texte, com_lien, com_nom, liv_titre, lie_nom, lie_lien FROM news n LETF OUTER JOIN article a ON a.new_nonews = n.new_nonews LETF OUTER JOIN livre lv ON lv.new_nonews = n.new_nonews LETF OUTER JOIN liens ln ON ln.new_nonews = n.new_nonews LETF OUTER JOIN composant c ON c.new_nonews = n.new_nonews
Sans clause ORDER BY
En principe pour trier il faut que la colonne soit présente dans la clause SELECT de l'ordre SELECT.
A +
merci à vous deux, ça fonctionne
je voudrais rajouter un truc...
sachant que dans les tables:
article, livre, liens, composant j'ai un champ sou_nosousection
et que dans ma table soussection j'ai un champ, sou_sousection et sec_nosection
et que dans ma table section j'ai un champ sec_nosection et sec_nomsection
je voudrais donc afficher le nom de la section pour chaque donnée retourné de la requete que vous avez créer
SELECT a1.art_titre, c1.com_lien, c1.com_nom, lv1.liv_titre, ln1.lie_nom, ln1.lie_lien, sec_nomsection FROM news n, soussection ss,section s LEFT OUTER JOIN article a1 ON a1.new_nonews = n.new_nonews LEFT OUTER JOIN livre lv1 ON lv1.new_nonews = n.new_nonews LEFT OUTER JOIN liens ln1 ON ln1.new_nonews = n.new_nonews LEFT OUTER JOIN composant c1 ON c1.new_nonews = n.new_nonews inner JOIN article a2 ON a2.sou_nosoussection = ss.sou_nosoussection inner JOIN livre lv2 ON lv2.sou_nosoussection = ss.sou_nosoussection inner JOIN liens ln2 ON ln2.sou_nosoussection = ss.sou_nosoussection inner JOIN composant c2 ON c2.sou_nosoussection = ss.sou_nosoussection inner JOIN soussection ON ss.sec_nosection = s.sec_nosection
mais les données sorte en triple...
encore pire avec:
SELECT a1.art_titre, c1.com_lien, c1.com_nom, lv1.liv_titre, ln1.lie_nom, ln1.lie_lien, sec_nomsection FROM news n, soussection ss, section s LEFT OUTER JOIN article a1 ON a1.new_nonews = n.new_nonews LEFT OUTER JOIN livre lv1 ON lv1.new_nonews = n.new_nonews LEFT OUTER JOIN liens ln1 ON ln1.new_nonews = n.new_nonews LEFT OUTER JOIN composant c1 ON c1.new_nonews = n.new_nonews LEFT OUTER JOIN article a2 ON a2.sou_nosoussection = ss.sou_nosoussection LEFT OUTER JOIN livre lv2 ON lv2.sou_nosoussection = ss.sou_nosoussection LEFT OUTER JOIN liens ln2 ON ln2.sou_nosoussection = ss.sou_nosoussection LEFT OUTER JOIN composant c2 ON c2.sou_nosoussection = ss.sou_nosoussection INNER JOIN soussection ON ss.sec_nosection = s.sec_nosection
je m'attendais avoir le résultat escompté avec la première solution...