由于执行JOIN查询而导致Mysql连接丢失

时间:2018-07-12 09:42:45

标签: mysql join database-connection

我写了以下查询,但是由于按行价格有大量行; mysql抛出连接丢失错误:因此查询是正确的,但我们需要对它进行优化。
查询

SELECT l.symbol, l.companyname, s.closing, s.change_price, s.stock_return, s.volume
FROM listed_companies as l, stock_prices as s
WHERE l.symbol = s.symbol AND DATE(s.stock_date) = (**SELECT max(`stock_date`) as MaxDate FROM stock_prices WHERE l.symbol = symbol**)  
ORDER BY l.symbol

在这里,stock_prices包含大量数据,并且具有多行单一值,对应于listing_companies表的单行。

突出显示的子查询会产生问题并占用大量执行时间。

建议任何备用查询。

1 个答案:

答案 0 :(得分:0)

1。

   SELECT l.symbol, l.companyname, s.closing, s.change_price, s.stock_return, s.volume
    FROM listed_companies as l, stock_prices as s
    WHERE l.symbol = s.symbol AND 
    ORDER BY l.symbol

2。

   SELECT l.symbol, l.companyname, s.closing, s.change_price, s.stock_return, s.volume
    FROM listed_companies as l, stock_prices as s
    WHERE  DATE(s.stock_date) = (**SELECT max(`stock_date`) as MaxDate FROM stock_prices WHERE l.symbol = symbol**)  
    ORDER BY l.symbol

尝试分别运行两个查询。检查两者是否都根据要求给出结果。如果是,则数据库可能存在问题。首先尝试一下。