2011-09-15 15 views
0
$q = "SELECT s.id, s.title, s.description, 
     (SELECT COUNT(*) FROM ".FORUM_THREADS." t WHERE t.cat_id = s.id) AS topics, 
     (SELECT COUNT(*) FROM ".FORUM_REPLIES." r INNER JOIN ".FORUM_THREADS." t ON r.thread_id = t.id 
     WHERE t.cat_id = s.id) AS replies, 
     (SELECT r.date FROM ".FORUM_REPLIES." r INNER JOIN ".FORUM_THREADS." t ON r.thread_id = t.id 
     WHERE t.cat_id = s.id ORDER BY r.date DESC LIMIT 1) AS last_post 
     FROM ".FORUM_SUBCATEGORIES." s WHERE s.parent = '$catid' AND s.status = '0' ORDER BY s.id"; 

は、私は、クエリr.dateとともに収集複数のフィールド

(SELECT r.date FROM ".FORUM_REPLIES." r INNER JOIN ".FORUM_THREADS." t ON r.thread_id = t.id 
INNER JOIN ".TBL_USERS." u ON u.id = r.author WHERE t.cat_id = s.id ORDER BY r.date DESC LIMIT 1) AS last_post 

の以下の部分に複数のフィールドを選択しようとしています、私はu.usernameとr.authorを選択します。

これを行うにはどうすればよいですか?

ありがとうございます!

答えて

1

ただ、SELECTに追加します:OPからのコメントの後に更新

(SELECT r.date, r.author, u.username FROM ".FORUM_REPLIES." r INNER JOIN ".FORUM_THREADS." t ON r.thread_id = t.id 
INNER JOIN ".TBL_USERS." u ON u.id = r.author WHERE t.cat_id = s.id ORDER BY r.date DESC LIMIT 1) AS last_post 
+0

これにより、last_postとして選択しているので、クエリが中断されます。 – sark9012

0

あなたは、3つの別々の選択OR(データモデルに依存する)を行う必要があるようにlast_postクエリを変更クエリは、FROM節の後に/終わりになります(そこには、必要な数の列を含めることができます)。

+0

これにより、last_postとして選択しているようにクエリが中断されます。 3つの別々のselect文を実行する必要がありますか? – sark9012

+0

上記の私の編集を参照してください... – Yahia

0

ルークでは、カウントを取得するためにネストされたSELECT文を使用します。ネストされたselectステートメントに依存してインナー・ジョインとしてカウントすることはできないので、代わりに中央のselectステートメントにそれらを追加する必要があります。

つまり、「.FORUM_REPLIES」に参加します。 ".FORUM_SUBCATEGORIES"で "u"(表現しているものが何であるかはわかりません)。私はあなたのためのクエリを書くだろうが、私はどのようにサブカテゴリを返信とサブカテゴリとリンクさせるのか分からない。