0

こんにちは、私は mysql データベースを持っています。基本的には、最初のテーブル クエリから 2 番目のテーブルの値を取得するだけです。

私はこのようなことを考え出しましたが、機能していません。

select src, dst_number, state, duration 
from cdrs, area_code_infos
where SUBSTRING(cdrs.src,2,3) = area_code_infos.`npa`;

これを理解するのを手伝ってください。PHP で複数のクエリを次々に実行しようとしましたが、45 分の待機時間の後にページを読み込んだときにあきらめました。

ありがとう、

4

1 に答える 1

0

テーブルが非常に大きく、インデックスのないクエリも実行していると思います..基本的に、すべての行に対して部分文字列を計算する必要があります。

結合を行うときはいつでも、結合されたフィールドの両方にインデックスが付けられていることを確認する必要があります。

オプションは、部分文字列の計算を含む別の列を作成し、その上にインデックスを作成することです。

ただし、areaCodeInfosID 列を作成し、それを area_code_infos テーブルへの外部キーとして設定することをお勧めします。

于 2012-09-06T03:58:34.797 に答える