Bonjour,
J'ai besoin de trier par DATE le resultat de 2 requetes similaires et pour cela j'essaie d'utiliser la commande UNION
req1
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT articles.texte texte, articles.id article_id, articles.date_creation date_creation FROM articles INNER JOIN designations ON articles.code = designations.code WHERE url =:designation AND articles.id_langue =:id_langue AND status>1 ORDER BY date_creation DESC LIMIT 1)
req2
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 SELECT articles.texte texte, articles.id article_id, articles.date_creation date_creation FROM articles INNER JOIN designations ON articles.code = designations.code WHERE url =:designation AND articles.id_langue =:id_langue AND id_auteur =:id_user AND status<2 ORDER BY date_creation DESC LIMIT 1
les 2 requetes fonctionnent bien seules mais lorsque je les rassemblent avec UNION je n'ai aucun resultat
enfin si, avec phpmyadmin ça fonctionne:
phpmyadmin
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part ( SELECT articles.texte texte, articles.id article_id, articles.date_creation date_creation FROM articles INNER JOIN designations ON articles.code = designations.code WHERE url ="formation/edi" AND articles.id_langue = 1 AND status>1 ORDER BY date_creation DESC LIMIT 1) UNION ( SELECT articles.texte texte, articles.id article_id, articles.date_creation date_creation FROM articles INNER JOIN designations ON articles.code = designations.code WHERE url ="formation/edi" AND articles.id_langue = 1 AND id_auteur = 57 AND status<2 ORDER BY date_creation DESC LIMIT 1) ORDER BY date_creation
mais en php rien a faire, resultat vide:
j'ai essayé de jouer avec les espaces ou de donner un alias a la table cree par l'UNION mais ça ne fonctionne toujours pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 $req1 = $bdd->prepare(' (SELECT articles.texte texte, articles.id article_id, articles.date_creation date_creation FROM articles INNER JOIN designations ON articles.code = designations.code WHERE url =:designation AND articles.id_langue =:id_langue AND status>1 ORDER BY date_creation DESC LIMIT 1) UNION (SELECT articles.texte texte, articles.id article_id, articles.date_creation date_creation FROM articles INNER JOIN designations ON articles.code = designations.code WHERE url =:designation AND articles.id_langue =:id_langue AND id_auteur =:id_user AND status<2 ORDER BY date_creation DESC LIMIT 1) ORDER BY date_creation'); $req1->bindValue(':id_user', '57', PDO::PARAM_INT); $req1->bindValue(':designation', $designation, PDO::PARAM_INT); $req1->bindValue(':id_langue', '1', PDO::PARAM_INT);
help
Partager