mysqlには、テーブルが2つあります:Question
とCommentary
です。mysqlでは、2番目のテーブルと結合し、最新の日付を持つ行を取得する方法は?
質問:ID、タイトル
解説:QuestionId、コンテンツ、作成した(日付フィールド)
QuestionIdは、質問者のIDに外部キーであるこれは、彼らがどのように見えるかです。
だから私は0から多くの関係質問と解説の間にあります。つまり、質問には0..nのコメントが含まれます。
私がしたいことは、最新の解説(作成されたフィールド)がある場合はすべての質問を表示することです。したがって、コメントがない場合、質問はまだ表示されるはずですが、コメントのコンテンツフィールドにはnullが表示されます。
にはというコメントが含まれていることを除いて、このクエリではほとんど機能していると思います。言及したように私はのコメントがあるようにしたいです同様に。
select
q.Id AS Id,
q.Title AS Title,
c.Content AS Content
from question AS q
left join commentary as c on c.QuestionId = q.Id
where
c.Created = (
select MAX(created)
from commentary
where questionid = q.Id
)
スクリプトを調整するにはどうすればよいですか?
@Barmar:私はあなたが "複製ボタン"で少し速いと思います。私はあなたがリンクしている質問と重複しているとは思わない。 stackoverflowに関する質問に時間を費やすときは、質問を重複しているとマークする前に少なくとも質問を読むことができます。 – brinch
私はそれが重複していると思います。 'c.created =(...)'を 'WHERE'節から' ON'節に移動するだけで動作します。 – Barmar
[この質問](https://stackoverflow.com/questions/7745609/sql-select-only-rows-with-max-value-on-a-column?rq=1)も参照してください。各質問の最新のコメントを取得するクエリを作成する方法を示します。そのクエリで結合を残すことができます。 – Barmar