掲示板のようなものをつくろうと思っております。
最新のトピック10件に対し、トピックを作った人、最終レス日、ユーザーが使用しているアイコン、レスを10件ずつ取りたい思ってます。
この場合1つのSQLでまとめることは可能なのでしょうか?
現在一度レスの部分以外を取得しForeach文で回すという処理をしておりますが一文でまとめることが可能なのかどうか伺いたいです。
現在はこのようなソースでおこなっております。
$sql_topic = "select t.topic, t.id ,u.username, r.created from topics as t,users as u, responses as r where t.delete_flag != 1 and u.delete_flag !=1 and r.delete_flag != 1 order by r.created desc limit 10";
$res_topic = $this->Topic->query($sql_topic);
foreach ($res_topic as $key => $val){
$topic_id = $val['t']['id'];
$topic = $val['t']['topic'];
$username = $val['u']['username']; $last_res = $val['r']['created'];
$sql_app = "select i.icon_orig, i.id,r.icon_id from icons as a, responses as r where r.topic_id = $topic_id and i.id = r.icon_id order by r.created desc limit 20";
$res_app = $this->Topic->query($sql_app);
}
コメント(1件)
topics、users、responses、iconsがそれぞれどのようなフィールドを持っているかも不明なので、
SQLを書いてあげたくても書けないです
データベースの質問をする場合には、利用しているRDBMSの名前とバージョン、
利用するテーブルのフィールド一覧と、求めている出力の形が必要になると覚えておきましょう
暇があれば回答するかもしれませんが、年度末で忙しいので、他の人の回答を待ってもらうしかないとは思いますが、
このままでは先に進めないと思いましたので、一言コメント入れさせてもらいました