2017-08-22 63 views
1

美好的一天。MySQL删除查询与派生表

我被困在MySql删除查询。

基本上我需要删除该SELECT查询的结果:

SELECT radcheck.* FROM 
(SELECT 
    permanent_users.realm, 
    devices.name, 
    devices.created, 
    TimeDiff(Now(), devices.created) AS TimeDifference 
FROM 
    permanent_users 
    INNER JOIN devices ON devices.permanent_user_id = permanent_users.id 
WHERE 
    TimeDiff(Now(), devices.created) > '01:30') MySubQuery 
    INNER JOIN radcheck ON MySubQuery.name = radcheck.username 

任何帮助将大大apreciated!

谢谢

回答

0

应该

delete radcheck from radcheck 
    inner join (SELECT 
     permanent_users.realm, 
     devices.name, 
     devices.created, 
     TimeDiff(Now(), devices.created) AS TimeDifference 
    FROM 
     permanent_users 
     INNER JOIN devices ON devices.permanent_user_id = permanent_users.id 
    WHERE 
     TimeDiff(Now(), devices.created) > '01:30') MySubQuery on MySubQuery.name = radcheck.username 
+0

嗨,非常感谢您的及时回复。我得到错误“ERROR 1064(42000):你的SQL语法有错误;检查与你的MySQL服务器版本相对应的手册,在正确的语法附近使用'inner join'(SELECT permanent_users.realm,devices.name,devices .created,TIMEDIFF(N”位于第1" 行 – XeWonder

+0

从radcheck 删除radcheck内部联接(SELECT permanent_users.realm, devices.name, devices.created, TIMEDIFF(现在(),devices.created)AS为TimeDifference FROM permanent_users INNER JOIN设备ON devices.permanent_user_id = permanent_users.id WHERE TIMEDIFF(现在(),devices.created)> '00:上MySubQuery.name = radcheck.username 05' )MySubQuery; 这个作品 – XeWonder

+0

@XeWonder 00:05改为01:30的一部分..我没有看到区别所以..如果我的回答是正确的或者将你引向正确的解决方案,请将其标记为已接受.. 。see how http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work – scaisEdge

0

继frmo scaisEdge的提示,这个工程

谢谢!!

delete radcheck from radcheck 
    inner join (SELECT 
    permanent_users.realm, 
    devices.name, 
    devices.created, 
    TimeDiff(Now(), devices.created) AS TimeDifference 
    FROM 
    permanent_users 
    INNER JOIN devices ON devices.permanent_user_id = permanent_users.id 
    WHERE 
    TimeDiff(Now(), devices.created) > '00:05') MySubQuery on MySubQuery.name = radcheck.username;