已解决请参见注解和解决方案
我有两个scraper,它们将刮取的数据存储在两个sql表中:cpu和cpubench。
cpu包含:name,price,id(这在scraper中不是常量),mark
cpubench包含:name、mark、cpurank
以下是这些表中的一个片段:
中央处理器 name price id mark AMD Ryzen 5 2600 $259.00 jLF48d 0 Intel Core i7-8700K $573.74 sxDzK8 0 AMD Ryzen 7 2700X $449.69 bddxFT 0 Intel Core i5-8600K $396.39 Mr2rxr 0 AMD Ryzen 3 2200G $145.00 RkJtt6 0 Intel Core i9-9900K $829.61 jHZFf7 0 AMD Ryzen 5 2600X $300.00 6mm323 0 Intel Core i5-9600K $419.00 28qhP6 0 Intel Core i7-9700K $659.00 WtyV3C 0 AMD Ryzen 5 1600 $232.61 mV98TW 0
普本奇 name mark cpurank AMD Ryzen 5 2600 13527 160 Intel Core i7-8700K 15962 98 AMD Ryzen 7 2700X 16971 75 Intel Core i5-8600K 12786 175 AMD Ryzen 3 2200G 7325 503 Intel Core i9-9900K 20150 37 AMD Ryzen 5 2600X 14342 135 Intel Core i5-9600K 13498 162 Intel Core i7-9700K 17379 69 AMD Ryzen 5 1600 12264 187
注:
两个表中的所有列都是varchar(255)。
表的顺序不是这样的,名称排列得很整齐。
我正在使用以下python代码:
mycursor = mydb.cursor()
sql = ("SELECT cpu.id, cpu.name, cpu.price, cpubench.mark FROM cpu LEFT JOIN
cpubench ON cpu.name = cpubench.name")
mycursor.execute(sql)
它运行正常。
但是,cpu中的所有标记值都为空。
如何解决这个问题?
任何帮助都将不胜感激。
更新
我已经创建了一个工作sql小提琴:https://www.db-fiddle.com/f/sngju1uubnmf56evvtyu6h/3
我在python中尝试了fiddle中的代码,但所有cpu.mark值都为null。
谢谢
1条答案
按热度按时间bxgwgixi1#
根据评论,我将最终解决方案绑定到这里: