次の構造を持つMySQLテーブルがあります。
mysql> select id,channel,Stats,Bridged from channels; +----------+---------------------------------+---------+-------------------------------+ | id | channel | Stats | Bridged | +----------+---------------------------------+---------+-------------------------------+ | 21523318 | SIP/5602291658-0007f140 | Up | SIP/X.Y.Z.Q-0007f13f > | | 21523321 | SIP/X.Y.Z.Q-0007f13f | Up | SIP/5602291658-0007f140 | | 21523322 | SIP/5154642553-0007f13a | Up | SIP/402-0007f135 | | 21523323 | SIP/402-0007f135 | Up | SIP/5154642553-0007f13a |
たとえば、ID 21523318 には、次の ID の Bridged 列と同じ Channel があります。
私の質問は、テーブルには通常数千のエントリが含まれていることを考慮して、2 つのレコードごとに 1 行を選択するにはどうすればよいでしょうか?
つまり、最初の行を取得したら、「ブリッジ」列情報がデータベースに「チャネル」として存在することを確認して、単一行を表示できます。私はこれを再帰的に行うことができます(別のブリッジチャンネルがあるかどうか各行をチェックしますが、数千の場合は非常に遅くなり、多くのクエリがあります。channel = Bridgedで同じテーブルと内部結合を行うことを考えていました。グループ化するか何か...
どのように進めるべきかについての手がかりやアイデアはありますか?