を形成し得る他の子culmon = 0、それの主な項目、は総チャイルズ項目が、私は</p> <p>culmon子を持つテーブルを持っているテーブルは、MySQL/PHP
項目が他の項目
の子である場合の表項目:
-------------------------------
id | title | child
1 | A main item 1 | 0
2 | B main item 2 | 0
3 | K child of item_2 | 2
4 | R child of item_1 | 1
5 | Q child of item_1 | 1
--------------------------------
私はそれが可能だ場合は、1つのクエリは、このようなデータを取得したい:
---------------------------------
+ Main item 1 (total 2 childs)
- R
- Q
+ Main item 2 (total 1 child)
- K
私は多くの検索をしましたが、私はそれを取得しませんでした!
* EDIT ..私がしたのは、テーブルを2つ使用してもjoinを使うことができます。これは、:*このような
私のテーブル:
-------------------------------
id | title | child
1 | main_item1 | 0
2 | main_item2 | 0
3 | child item | 1
4 | another child item | 1
5 | child for main2 | 2
--------------------------------
問合せ:
SELECT *
FROM `items` AS `t1`
INNER JOIN `items` AS `t2`
WHERE `t1`.`child` = `t2`.`id` and t2.user_id = $user_id
、私はこれを取得:
-main_item_1
-main_item_1
-main_item2
------------------------解決済み! --------------------------------------------
申し訳ありません自分の質問に答えるので、私はここに私の質問を編集したことができません。..
はあなたの助けみんなありがとう。..
と@Shiのためのおかげで(私は:)彼のコードの変更を行った)
SELECT *,
(SELECT COUNT(1)
FROM `items`
WHERE child = t1.id)
AS total_childs
FROM `itmes` AS `t1`
where `t1`.`child` = 0
GROUP BY t1.id
0123:私はちょうどこのよう..各メイン項目のための私の主な項目と子供の合計のすべてを取得するには、この単純なクエリをしましたと私はこのようなデータ取得:
- main_item1(合計子供:2)
- main_item2(合計子供:1)
が、私はすべての項目(子項目)を取得するために別のクエリをしました
と内側のテンプレートページ私はちょうど各項目の子供を得るために文を書く (私はSmartyテンプレートを使用しています);当然の
{foreach from=$items item=i}
{$i.title} (total children : {$i.total_childs})
// did another foreach to get children
{foreach from=$children item=c}
{if $c.child eq $i.id}
<li> {$c.title} </li>
{/if}
{/foreach}
{/foreach}
それを行うには良い方法がある場合、誰かがそれで私たちを助けている場合、それはうれしいです:)
おかげで再び..
アフマド:あなたのインナー私はWHEREの代わりにONを好むが、参加は良いと思っている。結果に満足できない場合は、ツリーの高さごとにINNER JOINをクエリに追加する必要があります。 – Bytemain