gpt4 book ai didi

mysql工作台应用简单查询需要太长时间

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

这是我的查询,

    SELECT 
COUNT(a.ref) AS refoct2015,
COUNT(b.ref) AS refspet2015,
COUNT(c.ref) AS refoct2014,
port_ID
FROM
report AS a
JOIN
report_sept2015 AS b USING (port_ID)
JOIN
report_oct2014 AS c USING (port_ID)
GROUP BY port_ID , a.booking_date , b.booking_date , c.booking_date

但是当 sql 不停止工作时,它需要超过 15 分钟才能给我结果。我多次重新启动它,更改了阅读时间(编辑>首选项>等..),但仍然很慢

最佳答案

如果您需要在加入之前进行计数,那么您必须在加入之前生成计数。

这是实现这一目标的一种方法:

SELECT A.Port_ID, A.refoct2015, B.refSept2015 , C.RefOct2014 
FROM (SELECT Port_ID, Booking_Date, count(Ref) as refoct2015
FROM report
GROUP BY Port_Id, Booking_Date) A
INNER JOIN
(SELECT Port_ID, Booking_Date, count(Ref) as refSept2015
FROM Report_sept2015
GROUP BY Port_Id, Booking_Date) B
ON A.Port_ID = B.Port_ID
INNER JOIN
(SELECT Port_ID, Booking_Date, count(Ref) as RefOct2014
FROM report_oct2014
GROUP BY Port_Id, Booking_Date) C
ON B.Port_ID = C.Port_ID

虽然包含 booking_date 而不加入似乎很奇怪......

如果我在表 A 中有 100 个不同的日期,在表 B 中有 100 个不同的日期,在表 c 中有 100 个不同的日期,那么你的结果集将是 100*100*100 假设每个日期共享相同的 port_Id...可能是为什么需要 15 分钟...确定您没有错过加入吗?

这对我来说似乎更有意义......

SELECT A.Port_ID, A.refoct2015, B.refSept2015 , C.RefOct2014 
FROM (SELECT Port_ID, Booking_Date, count(Ref) as refoct2015
FROM report
GROUP BY Port_Id, Booking_Date) A
INNER JOIN
(SELECT Port_ID, Booking_Date, count(Ref) as refSept2015
FROM Report_sept2015
GROUP BY Port_Id, Booking_Date) B
ON A.Port_ID = B.Port_ID
and A.Booking_date= B.Booking_date
INNER JOIN
(SELECT Port_ID, Booking_Date, count(Ref) as RefOct2014
FROM report_oct2014
GROUP BY Port_Id, Booking_Date) C
ON B.Port_ID = C.Port_ID
and A.Booking_date= B.Booking_date

但是,这意味着如果日期和端口 ID 不在所有表中,那么您就会遇到问题。由于内连接而消除了数据。通常我会使用完全外连接来解决这个问题,但 mySQL 不支持它。您必须使用外连接和联合来模拟行为。

所以,不要继续猜测你想要什么。用简单的英语解释这些表格的用途以及您想要完成的任务;在你原来的问题中通过编辑它。

恐怕我们正陷入 XY problem here

如果 booking_date 不在选择中,为什么它是相关的?

看起来您确实正在尝试按日期从这三个表中转换数据...但随后不显示日期...

你在追求类似的东西吗

Port_Id   Date    Oct2015  Sept2015  Oct2014
1 1/1/2015 500 250 0
1 1/2/2015 100 60 0
2 1/1/2015 100 540 60

关于mysql工作台应用简单查询需要太长时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33303424/

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