0
私は2つのテーブルmysqlの参加を選択:1対多の関係
table: wiki_articles
wiki_article_id | title | slug
---------------------------------------
1 | title 1 | title-1
2 | title 2 | title-2
table: wiki_articles_text
wiki_article_text_id | wiki_article_id | text | timestamp
---------------------------------------------------------
1 | 1 | ... | 2017-04-25 12:00:00
2 | 1 | ... | 2017-04-25 12:30:00
3 | 2 | ... | 2017-04-25 13:00:00
4 | 2 | ... | 2017-04-25 13:30:00
を持っている私は、各記事の最新のテキストと一緒にすべての記事を選択します。これまで
私のクエリは:
$q = " SELECT a.wiki_article_id,
a.title,
a.slug,
t1.text,
t1.timestamp
FROM
wiki_articles AS a
JOIN
wiki_articles_texts AS t1
ON
a.wiki_article_id = t1.wiki_article_id
LEFT OUTER JOIN
wiki_articles_texts AS t2
ON
(a.wiki_article_id = t2.wiki_article_id AND (t1.timestamp < t2.timestamp OR t1.timestamp = t2.timestamp AND t1.wiki_article_text_id < t2.wiki_article_text_id))
WHERE
t2.wiki_article_text_id IS NULL";
これは動作しません。私はこれを同じ問題だと思うので、この(SQL join: selecting the last records in a one-to-many relationship)の質問を試してみました。
私のクエリで何が問題になっていますか?
編集:私はバグを見つけました。今すぐ動作します。私は追加するのを忘れ「1」あなたは、内側がwiki_article_idで最大my_timestampグループに参加使用することができます