gpt4 book ai didi

mySQL:查询一直在加载

转载 作者:行者123 更新时间:2023-11-30 21:47:53 26 4
gpt4 key购买 nike

我想将 4 个表连接在一起。一张表来自数据库 A,而另外 3 个表来自数据库 B。当我运行以下查询时,计算机一直在加载,没有任何错误或结果。我的查询是:

SELECT tableA.ts, tableA.voltage, tableB.Day0, tableC.Day0, tableD.Day0 FROM databaseA.tableA \
-> INNER JOIN databaseB.tableB ON tableB.ts \
-> INNER JOIN databaseB.tableC ON tableC.ts \
-> INNER JOIN databaseB.tableD ON tableD.ts\
-> BETWEEN tableA.ts - INTERVAL 50 SECOND AND tableA.ts + INTERVAL 50 SECOND

由于我对 SQL 很陌生,所以我想问问我的查询设计是否有意义,以及它是否有任何问题可能导致查询出现问题,即(不间断加载)。

当前查询的复杂性来自于需要将来自多个数据库的多个表连接在一起。这些表需要连接的共性将在 ts(时间戳)处。我在上面的查询设计中添加了 BETWEEN tableA.ts - INTERVAL 50 SECOND AND tableA.ts + INTERVAL 50 SECOND,因为表之间的时间戳可能会相差几秒钟。

最佳答案

评论有点长。

您的ON 条件不正确。你在 table 之间做笛卡尔积。

ON 条件应该是两个(或可能更多)表之间的 bool 比较。所以,你的表达应该是这样的:

ON tableB.ts = . . .

(相等将是正常的运算符。)

MySQL 会将其他类型转换为 bool 值。对于数字,0 被认为是“假”,其他一切都是“真”(NULLNULL)。

所以:

ON tableB.ts

是可以接受的。但它实际上只是测试:

ON tableB.ts <> 0

关于mySQL:查询一直在加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48598399/

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