Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用复杂的mysql查询时,python没有返回正确的值_Python_Mysql_Python 3.x - Fatal编程技术网

使用复杂的mysql查询时,python没有返回正确的值

使用复杂的mysql查询时,python没有返回正确的值,python,mysql,python-3.x,Python,Mysql,Python 3.x,我试图使用python3从mysql数据库获取结果,但在检索值时遇到了一些问题 MySQL表: Stock Date Price GOOG 2012-05-20 402 GOOG 2012-05-21 432 APPL 2012-05-20 553 APPL 2012-05-21 590 FB 2012-05-20 40 FB 2012-05-

我试图使用python3从mysql数据库获取结果,但在检索值时遇到了一些问题

MySQL表:

Stock       Date          Price
GOOG        2012-05-20    402
GOOG        2012-05-21    432
APPL        2012-05-20    553
APPL        2012-05-21    590
FB          2012-05-20     40
FB          2012-05-21     34
以下是MySQL中的预期结果

Stock       Date          Price Change
GOOG        2012-05-21    30
APPL        2012-05-21    37
FB          2012-05-21    -6
我使用以下MySQL获得上述预期结果中提到的结果:

SELECT t1.stock, 
    t1.date                      AS CurrentDate, 
    oldDate.date                 AS OldDate, 
    ( t1.price - oldDate.price ) AS PriceChange 
FROM   mp_stocktable t1 
    JOIN (SELECT t2.stock, 
                    t2.date              AS date1, 
                    (SELECT Max(t3.date) 
                    FROM   mp_stocktable t3 
                    WHERE  t3.date < t2.date 
                            AND t3.stock = t2.stock 
                    GROUP  BY t3.stock) AS date2 
            FROM   mp_stocktable t2) AS StockDates 
        ON StockDates.stock = t1.stock 
            AND StockDates.date1 = t1.date 
    JOIN mp_stocktable oldDate 
        ON oldDate.stock = t1.stock 
            AND oldDate.date = StockDates.date2     
我做错了什么

我也尝试过这样的for循环

for stock, currentdate, olddate, calcStockBalance in curs:
    pprint.pprint(stock, currentdate, olddate, calcStockBalance)
    return stock, currentdate, olddate, calcStockBalance
我也会犯同样的错误


任何指导都将不胜感激。我在这一点上被卡住了。

你只有一个小的打字错误

更改此行:

"WHERE t1.stock = %s",(Stock,))
"WHERE t1.stock = %s"%(Stock,))
关于这一行:

"WHERE t1.stock = %s",(Stock,))
"WHERE t1.stock = %s"%(Stock,))

然后它应该可以工作。

请发布完整的错误回溯。这就是我在控制台中得到的所有信息“需要一个类似字节的对象,而不是“元组”,看起来查询确实可以正常执行,但我得到的值是某种对象,错误在哪一行?错误出现在第pprint行。pprint(calcStockBalance)谢谢,下面是我的回答其中t1.stock='%s'(stock,)