mysql - 如何在mysql中使用同表连接进行优化?

标签 mysql self-join

我有这个表结构: Table

我需要找到 id_exchange 为 1 和 7 的不同“符号”。我有一个带子查询的查询:

SELECT DISTINCT symbol
FROM ohlcv 
WHERE 
    id_exchange=1 
    AND quote_currency='USDT' 
    AND symbol IN (SELECT DISTINCT symbol FROM ohlcv WHERE id_exchange=7 AND quote_currency='USDT');

它找到了想要的数据,但是速度很慢。 有没有办法优化它,也许对同一个表进行内部联接?

谢谢!

* 更新 * 我不知道那个计数(符号)在那里做什么,它不是原始查询的一部分,我只是看到了那个错误。我可能做了一些测试并复制了错误的测试。请原谅我的错误。 :(

* 索引结构 * Show index from ohlcv

最佳答案

从你的问题来看,你似乎需要不同的内部计数,因为它会给你不同的符号计数。

SELECT count(DISTINCT symbol)
FROM ohlcv
WHERE id_exchange IN (1,7)
  AND quote_currency='USDT'

关于mysql - 如何在mysql中使用同表连接进行优化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52378919/

相关文章:

python - SQLAlchemy - 如何获取1分钟以内的所有记录和最新记录的同一分钟?

php/mysql select-这是一个简单的

sql - 使用SQL Server 2008r2中的自联接表聚合数据

mysql - 需要单个输出行上多行的数据。子查询?

sql-server-2008 - #Table 有歧义

mysql - 'on clause' codeigniter 中的未知列

php - 使用 PHP 的 Mysql 转储

MySQL REGEXP 匹配带破折号的字符串,匹配没有破折号的字符串

java - JPA Criteria API 和同一路径表达式上的两个联接

mysql - 了解 SQL 自连接