#mysql
#mysql
Вопрос:
Вот упрощенная версия моей таблицы:
Он содержит столбцы employee_id column2 column3 x y
, и все они NUMERIC
У меня возникли проблемы с написанием сложного запроса MySQL. Я хочу получить все значения employeeid
and column3
для всех сотрудников, которые имеют то же значение, что и у column2
другого сотрудника, и имеют РАЗНЫЕ значения для x
и y
ПАРЫ от каждого другого сотрудника. Например, если следующие 4 строки были в таблице:
2 100 123.456 5 7
1 234 123.456 5 7
3 100 456.789 5 10
4 100 123.456 5 7
Строки 2 100 123.456 5 7
и 3 100 456.789 5 10
должны быть получены, потому что они имеют разные идентификаторы сотрудников ( 2
vs 3
), одинаковое значение для column2
( 100
и 100
) и разные x
y
пары: (Сотрудник 2 имеет x
= 5 и y
= 7, что отличается от x
= 5 и y
= 10).
Как я могу сравнить документы таблицы с другими документами внутри нее?
Ответ №1:
SELECT e1.*
FROM employee e1
JOIN employee e2
ON e1.employee_id <> e2.employee_id
AND e1.column2 = e2.column2
AND e1.X <> e2.X
AND e1.Y <> e2.Y
Но я думаю, что ваше последнее условие должно быть
AND (e1.X <> e2.X OR e1.Y <> e2.Y)
Комментарии:
1. хм, я не получаю ожидаемого ответа, но этот ответ кажется правильным для проблемы, о которой я упоминал в моем OP