Bonjour,
je suis entrain de réaliser la partie administration de mon site. Actuellement je dois lister les articles et afficher le titre + l'auteur.
J'ai vu que sur mysql on pouvais utiliser des left join fin de réaliser une jointure entre deux tables et donc très facilement récupérer le nom de l'auteur en partant de son ID.

Ma requête est très simple pour le moment
(```
SELECT * FROM articles


Structure table articles

![](http://i.imgur.com/2z7ylBb.png)

![](http://i.imgur.com/ejmnv2D.png)

Merci de votre aide

(EDIT: J'ai réussis avec

SELECT * FROM articles INNER JOIN users ON articles.posted_by = users.id

mais quand je met 

SELECT * FROM articles WHERE id = ? AND slug = ? INNER JOIN users ON articles.posted_by = users.id


ça me retourne 

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 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 'INNER JOIN users ON articles.posted_by = users.id' at line 1' in C:\xampp\htdocs\article.php:14 Stack trace: #0 C:\xampp\htdocs\article.php(14): PDOStatement->execute(Array) #1 {main} thrown in C:\xampp\htdocs\article.php on line 14

6 réponses


bugland
Réponse acceptée

Le INNER JOIN se met après le FROM et pas après le WHERE

Yubo
Auteur
Réponse acceptée

@bugland, merci de ta réponse c'est corriger. :)

J'ai juste un autre problème sur un left join

SELECT * FROM articles INNER JOIN users ON articles.posted_by = users.id

Il remplace l'id de l'article par l'id de l'auteur

Lartak
Réponse acceptée

Bonjour.

Il remplace l'id de l'article par l'id de l'auteur

Il ne remplace pas, il fait juste la jointure.
Une requête SELECT ne peut modifier aucune donnée en base de données.

Yubo
Auteur
Réponse acceptée

@Lartak,
Bonjour, comment je pourrais "renomer" articles.id en id_article et users.id en id_users?
Car dans mon foreach si je met pas la jointure id = l'id de l'article, alors que si je met la jointure id = id de l'auteur

Merci

bugland
Réponse acceptée

Pour renommer une colonne il suffit dans ton select de mettre SELECT articles.id AS Id_article par exemple devant le vrai nom

Yubo
Auteur
Réponse acceptée

@bugland Merci beaucoup! tu me sauves :)