当前位置:首页>Excel>第325讲: VBA(类 Excel 思路) 和 Python(类 SQL 思路) 来实现这个需求:多表数据自动匹配与填充(VLOOKUP升级版)

第325讲: VBA(类 Excel 思路) 和 Python(类 SQL 思路) 来实现这个需求:多表数据自动匹配与填充(VLOOKUP升级版)

  • 2026-07-21 08:30:47
第325讲: VBA(类 Excel 思路) 和 Python(类 SQL 思路) 来实现这个需求:多表数据自动匹配与填充(VLOOKUP升级版)

做数据分析的朋友,大概率都经历过这种“机械性加班”:

一张订单表,只有「商品编码」;

另一张商品信息表,存着「单价」「库存」「供应商」「成本」「保质期」……

需求很朴素:把商品信息表里的多列数据,按商品编码“贴”到订单表里

很多人的第一反应还是老三样:VLOOKUPINDEX+MATCH,甚至直接手动复制粘贴。一旦字段多、数据量大,不仅效率低,还容易因为漏拉公式、错选区域导致对账翻车。

今天这讲,我们不只讲“怎么做”,而是从底层逻辑 → 实战写法 → 性能对比 → 避坑细节四个层面,把这件事彻底讲透。重点是:

  • Excel/VBA 方案:传统但依然高频,适合轻量场景

  • Python/pandas 方案:类 SQL 的关联方式,一次完成多列匹配,适合中大型数据

无论你是财务、运营,还是正在转型的数据分析师,这篇都能帮你把“多表匹配”从体力活变成自动化流程。


一、先还原一个真实业务场景

假设我们有两张表,结构如下:

1. 订单明细表(主表 / 左表)

订单ID

商品编码

销售数量

1001

A001

5

1002

B002

3

1003

A003

8

2. 商品信息表(维度表 / 右表)

商品编码

商品名称

单价

库存

供应商

成本

A001

无线鼠标

89

120

深圳电子

60

A002

键盘

129

80

东莞外设

90

A003

显示器

899

45

苏州光电

650

B002

U盘

59

200

广州存储

35

目标结果(订单表最终形态):

订单ID

商品编码

销售数量

商品名称

单价

库存

供应商

成本

1001

A001

5

无线鼠标

89

120

深圳电子

60

1002

B002

3

U盘

59

200

广州存储

35

1003

A003

8

显示器

899

45

苏州光电

650

下面我们分别用 VBA(类 Excel 思路) 和 Python(类 SQL 思路) 来实现这个需求,并重点对比两者的差异。

二、VBA 方案:传统但依然实用

1. 为什么 VBA 还在被大量使用?

在绝大多数公司里,报表流转仍然以 Excel 文件为主。

即便你会 Python,最终交付给业务部门的可能还是一个 .xlsx

在这种环境下,VBA 的优势在于“就地解决”:不依赖环境、不引入新工具,直接在 Excel 内部完成。

针对本例,常见做法有三种:

  1. VLOOKUP 逐列写公式

  2. INDEX + MATCH 组合(更稳健)

  3. VBA 批量写入公式或一次性转成“值”

我们重点讲 INDEX + MATCH,因为它比 VLOOKUP 更灵活,也更不容易出错。


2. VBA + INDEX-MATCH 实现多列匹配

(1)核心函数逻辑回顾

=INDEX(返回列, MATCH(查找值, 查找列, 0))
  • MATCH:找到“商品编码”在商品信息表中的行号

  • INDEX:根据行号,从指定列取对应值

(2)示例:在订单表中填充“商品名称”

假设:

  • 订单表:Sheet1

  • 商品信息表:Sheet2

  • 订单表商品编码在 B 列

  • 商品信息表商品编码在 A 列

  • 商品名称在商品信息表 B 列

  • 从第 2 行开始有数据

Sub FillProductInfo()    Dim wsOrder As Worksheet, wsProd As Worksheet    Dim lastRow As Long    Dim i As Long    Set wsOrder = ThisWorkbook.Sheets("Sheet1")    Set wsProd = ThisWorkbook.Sheets("Sheet2")    ' 订单表最后一行    lastRow = wsOrder.Cells(wsOrder.Rows.Count, "B").End(xlUp).Row    ' 从第2行开始循环    For i = 2 To lastRow        ' 商品名称        wsOrder.Cells(i, "D").Value = Application.WorksheetFunction.Index( _            wsProd.Range("B:B"), _            Application.WorksheetFunction.Match(wsOrder.Cells(i, "B").Value, wsProd.Range("A:A"), 0))        ' 单价        wsOrder.Cells(i, "E").Value = Application.WorksheetFunction.Index( _            wsProd.Range("C:C"), _            Application.WorksheetFunction.Match(wsOrder.Cells(i, "B").Value, wsProd.Range("A:A"), 0))        ' 库存        wsOrder.Cells(i, "F").Value = Application.WorksheetFunction.Index( _            wsProd.Range("D:D"), _            Application.WorksheetFunction.Match(wsOrder.Cells(i, "B").Value, wsProd.Range("A:A"), 0))        ' 供应商        wsOrder.Cells(i, "G").Value = Application.WorksheetFunction.Index( _            wsProd.Range("E:E"), _            Application.WorksheetFunction.Match(wsOrder.Cells(i, "B").Value, wsProd.Range("A:A"), 0))        ' 成本        wsOrder.Cells(i, "H").Value = Application.WorksheetFunction.Index( _            wsProd.Range("F:F"), _            Application.WorksheetFunction.Match(wsOrder.Cells(i, "B").Value, wsProd.Range("A:A"), 0))    Next i    MsgBox "多列匹配完成!"End Sub

(3)这段代码的“潜台词”

  • 逐行扫描:VBA 本质是循环,每一行都要重新 MATCH一次

  • 逐列填充:每一列都要单独写一次 INDEX

  • 强依赖 Excel:必须在 Excel 环境中运行

  • 易错点:如果商品编码不存在,MATCH会报错,需要加错误处理(后面会讲)

(4)工程级优化:错误处理 + 只写值

实际工作中,商品编码可能有脏数据(空格、不存在的编码等),建议这样改:

On Error Resume Next' 匹配代码If Err.Number <> 0 Then    wsOrder.Cells(i, "D").Value = "未找到"    Err.ClearEnd IfOn Error GoTo 0

另外,为了避免文件体积膨胀,可以在匹配完成后 一次性将公式转为数值

wsOrder.Range("D2:H" & lastRow).Value = wsOrder.Range("D2:H" & lastRow).Value

3. VBA 方案的适用边界

✅ 适合:

  • 数据量不大(万行以内)

  • 必须交付 Excel 文件

  • 不想引入 Python 环境

❌ 不适合:

  • 几十万行以上的数据

  • 需要频繁、定时执行的自动化任务

  • 多表、多条件复杂关联

这也是为什么越来越多人转向 Python。


三、Python 方案:类 SQL 的一次性关联

1. pandas.merge() 的核心思想

如果你用过 SQL,那么 pandas.merge()对你来说几乎没有学习成本。

它的本质就是:

按“键”(key)把两张表拼在一起

对应到 SQL,就是:

SELECT *
FROM 订单表
LEFT JOIN 商品信息表
ON 订单表.商品编码 = 商品信息表.商品编码;

在 pandas 里,这一行就够:

pd.merge(左表, 右表, on='键', how='left')

不需要循环,不需要逐列写公式,一次完成多列匹配。


2. 实战:用 Python 完成订单表多列填充

(1)准备环境与数据

import pandas as pd# 订单表orders = pd.DataFrame({    '订单ID': [100110021003],    '商品编码': ['A001''B002''A003'],    '销售数量': [538]})# 商品信息表products = pd.DataFrame({    '商品编码': ['A001''A002''A003''B002'],    '商品名称': ['无线鼠标''键盘''显示器''U盘'],    '单价': [8912989959],    '库存': [1208045200],    '供应商': ['深圳电子''东莞外设''苏州光电''广州存储'],    '成本': [609065035]})2)核心操作:merge 一次搞定result = pd.merge(    orders,    products,    on='商品编码',    how='left')print(result)

输出结果:

订单ID 商品编码  销售数量  商品名称   单价   库存   供应商    成本
0  1001  A001      5  无线鼠标   89  120  深圳电子    60
1  1002  B002      3    U盘    59  200  广州存储    35
2  1003  A003      8   显示器  899   45  苏州光电   650

✅ 所有列一次性匹配完成

✅ 不需要循环

✅ 逻辑清晰,可读性强


3. merge 的四种关联方式(必会)

参数

含义

类比 SQL

how='left'

左连接

LEFT JOIN

how='right'

右连接

RIGHT JOIN

how='inner'

内连接

INNER JOIN

how='outer'

全外连接

FULL OUTER JOIN

在本例中,我们使用 left,确保订单表的所有记录都被保留,即使某些商品在商品信息表中不存在。


4. 进阶:处理“键名不一致”的情况

现实中,两张表的关联字段名称经常不一样,比如:

  • 订单表:sku_id

  • 商品表:product_code

这时用 left_onright_on

result = pd.merge(    orders,    products,    left_on='sku_id',    right_on='product_code',    how='left')

5. 性能对比:为什么 Python 更快?

维度

VBA

Python/pandas

执行逻辑

逐行循环

向量化运算

多列匹配

多次 MATCH

一次 merge

大数据表现

较慢

极快

可读性

冗长

简洁

可维护性

经验值参考:

  • 1 万行以内:VBA 尚可接受

  • 10 万~100 万行:强烈建议 Python

  • 多表关联、复杂清洗:Python 完胜


四、关键对照:类 SQL 关联 vs 逐列公式填充

对比项

VBA(逐列公式)

Python(类 SQL 关联)

思维方式

Excel 单元格思维

表(DataFrame)思维

关联逻辑

多次查找

一次关联

代码复用

自动化程度

一般

极高

学习曲线

工程化能力

一句话总结:

VBA 是在“填格子”,Python 是在“操作表”。


五、实战建议:如何选择你的工具?

  • 日常报表、小数据量、交付 Excel → VBA / 原生 Excel 函数

  • 数据清洗、大表关联、自动化脚本 → Python + pandas

  • 团队协作、版本管理、调度任务 → Python + Git + 定时任务

如果你正在从 Excel 向数据分析转型,merge()是你必须跨过的门槛之一。它几乎等同于 SQL 中的 JOIN,是数据分析师的“基本功”。

六、避坑指南(经验之谈)

  1. 关联前先去重

    确保“右表”(商品信息表)的关联键唯一,否则 merge会产生笛卡尔积。

  2. 注意数据类型一致

    一个为字符串 '1001',一个为整数 1001,会导致匹配失败。

  3. 处理缺失值

    merge(how='left')后,未匹配到的行会是 NaN,可用 fillna()填充默认值。

  4. VBA 中避免整列引用

    不要用 Range("A:A"),改用 Range("A2:A" & lastRow),否则速度会明显变慢。


七、课后练习(选择题)

  1. 在使用 pandas.merge()时,如果想保留左表的所有记录,即使右表中没有匹配项,应使用哪种连接方式?

    A. inner

    B. left

    C. right

    D. outer

  2. VBA 中使用 INDEX+MATCH进行多列匹配时,主要的时间开销来源于?

    A. 一次性读取内存

    B. 逐行循环和重复查找

    C. 屏幕刷新

    D. 变量声明

  3. 以下关于 VLOOKUP与 INDEX+MATCH的说法,正确的是?

    A. VLOOKUP可以向左查找

    B. INDEX+MATCH比 VLOOKUP更灵活

    C. VLOOKUP计算速度一定更快

    D. INDEX+MATCH不支持精确匹配

  4. 在 pandas 中,如果左右两张表的关联字段名称不同,应该使用什么参数?

    A. on

    B. left_on和 right_on

    C. key

    D. merge_key

  5. 当商品信息表中存在重复的商品编码时,直接使用 merge()最可能导致的问题是?

    A. 程序报错终止

    B. 产生笛卡尔积,行数异常增加

    C. 自动去重

    D. 匹配速度显著提升


八、答案

  1. B

  2. B

  3. B

  4. B

  5. B


最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-22 16:43:17 HTTP/2.0 GET : https://h.sjds.net/a/544202.html
  2. 运行时间 : 0.297912s [ 吞吐率:3.36req/s ] 内存消耗:4,431.34kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=68e68a2bc4b782b975224c3a194ac9d1
  1. /yingpanguazai/ssd/ssd1/www/h.sjds.net/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/h.sjds.net/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/h.sjds.net/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/h.sjds.net/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/h.sjds.net/runtime/temp/ad153693ed39fba6d1bda2fe72512cde.php ( 12.06 KB )
  140. /yingpanguazai/ssd/ssd1/www/h.sjds.net/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000471s ] mysql:host=127.0.0.1;port=3306;dbname=h_sjds;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000679s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.004128s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.032209s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000866s ]
  6. SELECT * FROM `set` [ RunTime:0.000283s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000744s ]
  8. SELECT * FROM `article` WHERE `id` = 544202 LIMIT 1 [ RunTime:0.019559s ]
  9. UPDATE `article` SET `lasttime` = 1784709798 WHERE `id` = 544202 [ RunTime:0.015813s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.000341s ]
  11. SELECT * FROM `article` WHERE `id` < 544202 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.003114s ]
  12. SELECT * FROM `article` WHERE `id` > 544202 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.009460s ]
  13. SELECT * FROM `article` WHERE `id` < 544202 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.044406s ]
  14. SELECT * FROM `article` WHERE `id` < 544202 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.041986s ]
  15. SELECT * FROM `article` WHERE `id` < 544202 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.010375s ]
0.303934s