gpt4 book ai didi

php - 使用while循环从另一个表获取总行数时MYSQL慢查询

转载 作者:行者123 更新时间:2023-11-29 04:05:10 26 4
gpt4 key购买 nike

我是 mysql 的新手,我正在尝试从另一个表中获取所有 ID,其中 ID 等于来自 table 1 的 ID 并且另一个条件。

表一

+---------------+
| ID model line |
+---------------+
| 1 XX C1 |
| 2 AA C3 |
| 3 SS C1 |
+---------------+

表 2(因此,如果我的查询是 ID = 1 AND model = XX GROUP BY line,则表 2 中的总行将返回 3,因为 ID 1,4 和 5 为真。

+----------------------------+
| ID InspectionID model line |
+----------------------------+
| 1 1 XX C1 |
| 2 1 AA C3 |
| 3 1 SS C1 |
| 4 1 XX C2 |
| 5 1 XX C4 |
+----------------------------+

到目前为止,我在 PHP while 循环中有此查询,它返回我想要的内容,但查询速度非常慢。

$query = "SELECT * FROM table2 WHERE inspectionID = '$ID' AND model = '$modelID' 按行分组

所以我认为最好的方法是连接 table1 和 table2 并添加一列 total遗憾的是,我对 mysql 和连接表的了解有限,欢迎任何建议。

我的目标是在下面创建。

+---------------------+
| ID model line total |
+---------------------+
| 1 XX C1 3 |
| 2 AA C3 0 |
| 3 SS C1 0 |
+---------------------+

最佳答案

非常简单的连接和聚合。 working demo (注意演示包括到目前为止的答案和结果。)

我们离开了连接,因此我们保留了表 1 中的所有记录并连接到表 2 以获取与表 1 匹配的记录。我们在连接本身上设置了模型限制,以便在连接发生之前将过滤应用于表 2。因此,计数将仅包括型号 XX,所有其他型号的计数将为零。

SELECT T1.ID, T1.Model, T1.Line, count(T2.ID)
FROM table1 T1
LEFT JOIN Table2 T2
on T1.Model = T2.Model
and T2.Model = 'XX'
GROUP BY T1.ID, T1.Model, T1.Line
ORDER BY T1.ID

关于php - 使用while循环从另一个表获取总行数时MYSQL慢查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48908436/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com