2012-01-19 7 views
2

私はコメントを保持するmysqlテーブルを持っています。コメントはサブコメントを持つことができますが、レベルは1つしかありません(オプションの 'parent'属性があり、コメントの親はそれ自身の親を持つことはできません)。このようなデータに改ページしたいと思います。"Flexible" MySQLの制限

トップレベルのコメント(ページオフセット付き)とサブコメント(利用可能な場合)を最初に取ります。

明白な解決策は、10個のコメントとそれに続くIN句のサブコメントを取得することですが、これを行うには間違った方法です(少なくとも良い方法があると思います)。

これを達成するより良い方法はありますか?

答えて

0

私は、INサブクエリが、おそらくあなたの最善の策になるだろうと思う:

SELECT whatever FROM comments_table c 
WHERE c.id IN (SELECT id FROM comments_table c2 WHERE some_criteria_here LIMIT 10) 
OR c.parent_id IN (SELECT id FROM comments_table c2 WHERE some_criteria_here LIMIT 10) 
+0

はい、これは私が最初に考えていたものですが、私はよりよい解決策を望んでいます –