2013-01-25 73 views
1

嘿家伙,我想是这样的:MySQL的加入,而不是子查询

DELETE FROM ClientsFlags 
WHERE clientId = (SELECT id 
        FROM Client 
        WHERE emailRegistrationToken = 3) 
AND flagId = 42; 

但随着联接,而不是子查询。我对联接不太好,所以请帮助我。

+5

[你尝试过什么?](HTTP ://www.whathaveyoutried.com/)请参见[ask advice](http://stackoverflow.com/questions/ask-advice)。 –

回答

1

这里是一个连接的版本,

DELETE a 
FROM ClientsFlags a 
     INNER JOIN Client b 
      ON a.clientId = b.id 
WHERE b.emailRegistrationToken = 3 AND    
     a.flagId = 42; 
0

你应该尝试这样的事:

DELETE C FROM ClientsFlags AS CF 
JOIN Client AS C ON C.Id=CF.clientId 
WHERE email=3 and flagId=42 
1

试试这个

Delete C From ClientFlags cf, Client c where cf.lientId=c.Id and email=3 and flagId=42;