Задать вопрос
@dev_family

Как выбрать записи с одинаковым значением в столбце?

В таблице есть следующие поля:
id, sum, member_id, date, operator_id

Подскажите как мне выбрать все записи у которых поля date и operator_id одинаковы между собой, имеют одинаковые значения?
  • Вопрос задан
  • 23758 просмотров
Подписаться 2 Оценить 1 комментарий
Пригласить эксперта
Ответы на вопрос 3
@SadGnome
Например вот так. Накидал прямо здесь, надеюсь, без ошибок :)
SELECT `test`.* 
FROM `test` 
LEFT JOIN 
	(SELECT `date`, `operator_id`
	FROM `test`
	GROUP BY `date`, `operator_id`
	HAVING COUNT(*)>1) as `tbl`
ON
	`test`.`date`=`tbl`.`date` AND
	`test`.`operator_id` = `tbl`.`operator_id`
WHERE `tbl`.`date` IS NOT NULL
Ответ написан
demimurych
@demimurych
SELECT *
FROM `test`
WHERE date = operator_id
Ответ написан
soroktu
@soroktu
корпоративный разработчик / архитектор
вот мой вариант

select t1.*
from test t1
where exists (select *
              from test t2
              where t2.id <> t1.id
              and t2.date = t1.date
              and t2.operator_id = t1.operator_id)

это на тот случай если поля date и operator_id обязательно заполнены. если же могут быть NULL, то можно обернуть их функцией COALESCE
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы