私は以下のようなMySQLテーブルがあります。下から行くと、「ステータス= 1」のスポンサーを探しています。しかし、私はそれを順序でしたい。例えば、私は "マイク"です。私のスポンサーは "Richard"です。私は "リチャード"のステータスが1であるかどうかチェックしたい。彼はしていない。だから私は "リチャード"のスポンサーをチェックして、彼のステータスが1かどうかを調べるつもりです。彼はどちらもしません。だから、私はスポンサーのスポンサーのスポンサーをチェックしていきます。ユーザーのスポンサーがPHPを無限に上回っていますか?
通常、いくつかのレベルをチェックしたい場合は、1回または複数回のクエリでこれを行うことができます。しかし、問題は、ステータスが1のスポンサーが見つかるまで無限レベルをチェックしたいのですが?その仕事はどうですか?どのようなPHPのクエリ/関数は、無限レベルをチェックするように見えるだろうか?逆の順序で
Sponsors Referrals Status
--------------------------------------
Zack Joey 1
Joey Tracy 0
Tracy Helen 0
Helen Richard 0
Richard Mike 0
より良い方法は、その後の子どもたちとの最初の親のスポンサーIDを保存することです。 –
私に例を挙げてもらえますか?それは私が視覚化するのに役立ちます。 –
Zackが作成されました - > ZackはJoeyを参照します - > JoeyはZackへのリンクを持ち、parent'id'と呼んでいます。JoeyはTracyを参照し、JoeyはJoeysにTracysの 'parent_id'を設定します。 Zackの連鎖の中には同じ 'parent_id'があります。このようにして、サブ選択などなしで 'parent_id'を参照することができます –