2016-10-13 4 views
0

することにより、グループを使用して対自分自身でテーブルを結合することは、私のテーブルの簡易版である:ここではMySQLの

それは列 employee_id column2 column3 x y が含まれていますし、彼らは私がトラブル複雑MySQLを書いを持っていますすべてのNUMERIC

ですクエリ。私は別の従業員としてcolumn2に同じ値を持ち、他のすべての従業員のxy PAIRに異なる値を持つすべての従業員のすべてのemployeeidcolumn3の値を取得したいと思います。次の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 

それらは異なる従業員ID(32)、column2100100)に対して同じ値を持っているので、行2 100 123.456 5 73 100 456.789 5 10が得られなければなりません、 (従業員2は、x = 5およびy = 10とは別のものであり、x = 5およびy = 7を有する)。

テーブルのドキュメントを他のドキュメントと比較するにはどうすればよいですか?

答えて

0
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) 
+0

が届かないべきであるが、この答えは、私は私のOPで述べた問題のために右のように見えるん推測 –