@bozilly

Как составить такой запрос?

Допустим есть таблица
2921004897094454a705769511ce3713.png
Как сделать выборку id_article в которых id_user = 15, но при этом встречается только один раз. Т.е. нету других авторов. Т.е. должно вернуть 2 и 3.
  • Вопрос задан
  • 276 просмотров
Пригласить эксперта
Ответы на вопрос 5
@dmitryKovalskiy
программист средней руки
Набросал трэш на коленке, но может и сработает. хотя и врятли.
SELECT ID_ARTICLE 
FROM TABLE1 
GROUP BY ID_ARTICLE 
HAVING COUNT(Id_user)=1
WHERE ID_ARTICLE IN(SELECT ID_ARTICLE WHERE ID_USER=@param)
Ответ написан
Комментировать
vvovas
@vvovas
select
	t.id_article 
from
	t
	inner join (select id_article from t group by id_article  having COUNT(1) = 1) t2
		on t.id_article  = t2.id_article 
where
	ID_USER = 15
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
SELECT `t1`.`id_article`
    FROM `table` AS `t1`
    LEFT JOIN `table` AS `t2` 
        ON `t2`.`id_article` = `t1`.`id_article` 
            AND `t2`.`id_user` != `t1`.`id_user`
    WHERE `t1`.`id_user` = :user
        AND `t2`.`id_user` IS NULL
Ответ написан
Комментировать
madmages
@madmages
Человек прямоходящий
SELECT * FROM ( SELECT * FROM table GROUP BY id_article HAVING COUNT(*) = 1) t WHERE id_user=15
Ответ написан
Комментировать
premas
@premas
Full-stack web-developer
Кто учил вас так поля связующей таблицы называть? Мастер Йода?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы