2016-09-29 5 views
0

このコード作業を正しくエントリ)

SELECT 
    c.id_article, 
    a.titre AS title_article 
FROM comments AS c 
LEFT JOIN articles AS a 
    ON a.id = c.id_article 
WHERE c.hide = 0 
GROUP BY c.id_article 
ORDER BY MAX(c.date) DESC 
LIMIT 0, 6 

しかし、私は記事の最後のコメントのユーザー名を必要とします。

私は任意のヘルプ

...この

SELECT 
    c.id_article, 
    a.titre AS title_article, 
    u.nom_utilisateur AS user_name 
FROM comments AS c 
LEFT JOIN articles AS a 
    ON a.id = c.id_article 
LEFT JOIN membres AS u 
    ON c.id_user = u.id 
WHERE c.hide = 0 
GROUP BY c.id_article 
ORDER BY MAX(c.date) DESC 
LIMIT 0, 6 

なく作業をしてみてください?エラーメッセージまたは間違っているものを記述することなく

(私の悪い英語のため申し訳ありません...)

+0

何が問題なのですか?任意のエラー? –

+0

何を得たいですか?あなたはコメントが記事との左の結合にあると確信していますか?コメントは記事なしでもかまいませんか? – Tobia

+0

記事に投稿された最後のコメントからユーザー名を取得しようとしています。私の実際の関数は、記事リストから最後のコメントを取得します。 –

答えて

0

言い難いの一種であるが、いずれにしても、あなたはGROUP BY文でu.nom_utilisateurが含まれていませんでした。

MySQLでは、エラーをスローせずにこれを許可することがありますが、予期しない結果が生じることがあります。

SELECT 
    c.id_article, 
    a.titre AS title_article, 
    u.nom_utilisateur AS user_name 
FROM comments AS c 
LEFT JOIN articles AS a 
    ON a.id = c.id_article 
LEFT JOIN membres AS u 
    ON c.id_user = u.id 
WHERE c.hide = 0 
GROUP BY c.id_article, u.nom_utilisateur 
ORDER BY MAX(c.date) DESC 
LIMIT 0, 6 
+0

記事に投稿された最後のコメントからユーザー名を取得しようとしています。 私の実際の関数は、記事リストから最後のコメントを取得します。 –

0

私は部分的な解決策を持っています。記事からの最後のコメントを取得するために

私はこのコードを使用します。

SELECT 
    u.nom_utilisateur AS username 
FROM comments AS c 
LEFT JOIN membres AS u 
    ON u.id = c.id_user 
WHERE c.id = :last_id_comment 
SELECT 
    c.id_article, 
    MAX(c.id) AS last_id_comment, 
    a.titre AS title_article 
FROM comments AS c 
LEFT JOIN articles AS a 
    ON a.id = c.id_article 
WHERE c.hide = 0 
GROUP BY c.id_article 
ORDER BY MAX(c.date) DESC 
LIMIT 0, 6 

そして最後のコメントからユーザー名を取得するために最初に私はこのコードを使用する]を選択するためにしばらくの間後

最高の解決策ではありませんが、それは仕事です。