2013-03-07 47 views
3

我想搜索相同的值,但在多個字段中。但是爲最後的事件逃脫了銘文。可能嗎?查詢多個LIKE和NOT IN情況

我試過以下,但沒有成功。

SELECT id, login 
FROM PERSON 
WHERE login like '%toto%' 
OR nickname like '%toto%' 
OR name like '%toto%' 
AND id NOT IN (
    SELECT p.id 
    FROM PERSONNE p, INSCRIPTION i, EVENT e 
    WHERE p.id = i.id_person 
    AND i.id_event = e.id 
    AND i.id_event = (
     SELECT MAX(id) FROM EVENT)) 
GROUP BY login, nom, pseudo 
+0

感謝您對此快速回復!完美的工作。 很遠很遠:) – kesm0 2013-03-07 00:45:58

回答

5

您只需對OR條件進行分組即可。

SELECT id, login 
FROM PERSON 
WHERE (login like '%toto%' OR nickname like '%toto%' OR name like '%toto%') 
AND id NOT IN (SELECT p.id FROM PERSONNE p, INSCRIPTION i, EVENT e 
       WHERE p.id = i.id_person 
       AND i.id_event = e.id 
       AND i.id_event = (SELECT MAX(id) FROM EVENT)) 
GROUP BY login, nom, pseudo