Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.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 SQL更新+;行范围上的内部联接_Mysql_Range_Inner Join - Fatal编程技术网

Mysql SQL更新+;行范围上的内部联接

Mysql SQL更新+;行范围上的内部联接,mysql,range,inner-join,Mysql,Range,Inner Join,我有表“Temp”和表“Today”,它们有相同的列名(“url”和“date”) 我想在url匹配时更新“Temp”表的“date”列。 但是我的表非常大(30K个元素),phpmyadmin不希望执行以下右查询: update Temp Tp inner join Today Ty on Tp.url = Ty.url set Tp.date = Ty.date 我得到一个“查询执行被中断,错误#1317” 为什么?我认为这是因为我为一个共同化服务器(OVH)付费,并且我不能执行超

我有表“Temp”和表“Today”,它们有相同的列名(“url”和“date”)

我想在url匹配时更新“Temp”表的“date”列。 但是我的表非常大(30K个元素),phpmyadmin不希望执行以下右查询:

update Temp Tp
inner join Today Ty on
    Tp.url = Ty.url
set Tp.date = Ty.date
我得到一个“查询执行被中断,错误#1317” 为什么?我认为这是因为我为一个共同化服务器(OVH)付费,并且我不能执行超过2-3秒的查询

不管怎样,现在我想一个范围一个范围地执行这个查询。前1000行,1000-2000等

我尝试了以下方法:

update Temp Tp
    inner join 
    (
        select Tp2.date
        from Temp Tp2
            inner join Today Ty2 
                on Tp2.url = Ty2.url
        limit 1000
    ) Ty on Tp.url = Ty.url                     
set Tp.date = Ty.date
但我得到了以下错误:#1054-on子句中的未知列“Ty.url”


我不知道为什么?据我所知,这里有两个问题。首先,@pmbAustin已经提到,您的子查询中缺少一列

其次,我认为您的子查询应该选择Ty2中的日期,而不是Tp2:

update Temp Tp
    inner join 
    (
        select Ty2.date, Tp2.url
        from Temp Tp2
            inner join Today Ty2 
                on Tp2.url = Ty2.url
        limit 1000
    ) Ty on Tp.url = Ty.url                     
set Tp.date = Ty.date
请参阅(尽管出于实际原因,此演示仅限于2)


虽然您没有明确询问过这一点(您可能已经知道),但为了完整起见,应该提到,对于后续查询,
LIMIT
应与
OFFSET
一起使用(或者只使用快捷方式
LIMIT 1000,1000
LIMIT 20001000
LIMIT,
,等等。

PS:我用这个线程:写第二个查询,但我达到了我的极限…因为你的子查询只有一列…“Ty.date”。您需要将Ty.url添加到select语句中。这是MySQL还是SQL Server?谢谢@pmbAustin,我在“Tp2.date”之后添加了“Tp2.url”在SELECT附近的第4行。最后一个问题:您确认我正在进行完整Temp和有限Ty之间的内部联接吗?@M.Ali,不确定答案,我在OVH托管,我使用phpmyadmin接口,我猜这是mysqlThank!但我仍然错过了一些东西:对于“limit 100”,查询需要1.5秒,但是对于“limit 20000,2”我有一个查询中断…为什么它有2行那么长?!偏移量越高,所需时间就越长。有关更多详细信息和提高性能的提示,请参阅。