gpt4 book ai didi

MySQL多子查询优化

转载 作者:行者123 更新时间:2023-11-29 06:37:42 25 4
gpt4 key购买 nike

我有3张 table
Table1 有 id 单元格
表2有id单元格
Table3 有 id1 单元格 -> 对应于 Table1.id
Table3 有 id2 单元格 -> 对应于 Table2.id

我需要一个结果来计算 id1 和 id2 对在 Table3 中出现的次数,以及未出现的结果。

所以不能使用简单的按 id1、id2 从 table3 组中选择 *。

我用过

SELECT *
FROM table1, table2,
(SELECT COUNT(*) AS count
FROM table3
GROUP BY id1, id2)
GROUP BY table1.id, table2.id

但是它像糖蜜一样慢而且不起作用。

最佳答案

尝试下一个查询:

1) 首先,我们交叉连接 table1 和 table2 以获取所有组合元组。

2) 其次,我们将连接留给 table3。

3) 我们计算每个元组获得的行数,计算 table3->id1 上的非空值(假设类型为 <null, id> 的元组或<id, null> 表3 上不存在)

SELECT
t1.id, t2.id, COUNT(t3.id1) AS count
FROM
table1 AS t1
CROSS JOIN
table2 AS t2
LEFT JOIN
table3 AS t3 ON t3.id1 = t1.id AND t3.id2 = t2.id
GROUP BY
t1.id, t2.id

关于MySQL多子查询优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53075769/

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