メインテーブルユーザーテーブル
ID名電話番号(関連フィールド)
From テーブル通話記録 table
id 電話 (関連フィールド) ot_phone 時間タイプ (着信および発信通話) input_time
連絡先テーブル
id c_id電話
会社テーブル
c_id名
各人の電話番号の数え方 (リスト制限 0、10)
電話がかかってきた回数
電話をかけられた回数
市内番号は何回か
外国番号は何回ありますか
合計着信通話時間
合計発信通話時間
一致する会社の数 (主に、連絡先テーブル内の電話機は同じ電話機を持ちますが、対応しているため、これが主な理由です)別の会社への場合、左側の join sum() データは不正確です)
マッチング会社の通話時間
......
主な問題は、連絡先テーブル内の電話が一意ではなく、重複した電話番号があることです。たとえば、ある人が 2 つの会社で働いている場合、
左結合合計の後に、会社には重複したデータが存在し、データは不正確です
連絡先のテーブルは 50,000 元以上です
最終結果
は、
id name Telephone in_num (着信コールの数) out_num (発信コールの数) local_phone_num (市内番号) .......
23 '小白 に似ています。 ' 15523232323 45 120 30 ....
24 '小红' 18823232323 70 93 41 ...
高洛峰2017-05-18 10:56:32
まず、国内番号と外国番号を定義するフィールドが必要です。次に、通話記録なしで番号を表示する必要があるかどうかを確認します。必要に応じて、次の SQL を左結合に変更し、その値に対して null 判定を実行します。そうでない場合は、直接使用できます
リーリーさらに、表 b の通話時間が統計的な int 型の分ではない場合は、変換する必要がある場合があります
PHP中文网2017-05-18 10:56:32
次の SQL を実行すると、次の結果が得られます: (質問で期待される結果は少し不明確です)
ID | 名前 | 電話 | タイプ | 数える |
---|---|---|---|---|
23 | シャオバイ | 15523232323 | で | 14 |
23 | シャオバイ | 15523232323 | アウト | 287 |
SQL
リーリー