2017-08-22 61 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;