2013-06-21 2 views
0

Я ищу быстрый способ для запуска такого рода даного:Mysql выбрать не дублированные значения с условием

SELECT * 
FROM `aukcje_przedmioty` 
WHERE (
(
    opis NOT 
    IN (
     SELECT opis 
     FROM aukcje_przedmioty 
     WHERE (aktywne =1 AND user_id =6) 
    ) 
) 
AND aktywne =0 
AND user_id =6 
) 

стол aukcje_przedmioty

+0

Опубликовать сооружение для таблицы aukcje_przedmioty please –

+0

structure: | id | user_id | название | opis | aktywne | – user2381796

+0

opis - это текст, aktywne is int с двумя значениями 1 или 0, id и идентификатором пользователя int – user2381796

ответ

0

вы можете попробовать что-то вроде

SELECT a.* 
FROM `aukcje_przedmioty` a 
JOIN 
(
    SELECT opis,user_id 
    FROM aukcje_przedmioty 
    GROUP BY opis,user_id 
    HAVING max(aktywne) = 0 
) x 
ON 
x.user_id = a.user_id and 
x.opis = a.opis 
WHERE user_id = 6 

http://sqlfiddle.com/#!2/16774/6

Используйте explain, чтобы узнать, что работайте лучше для вас.

+0

Спасибо, теперь время исполнения приемлемо :) – user2381796

Смежные вопросы