Для этой таблицы:
mysql> select * from work;
+------+---------+-------+
| code | surname | name |
+------+---------+-------+
| 1 | John | Smith |
| 2 | John | Smith |
+------+---------+-------+
Я хотел бы получить пару кодов, где имена равны, поэтому я делаю это:
select distinct A.code, B.code from work A, work B where A.name = B.name group by A.code, B.code;
Однако я получаю следующий результат:
+------+------+
| code | code |
+------+------+
| 1 | 1 |
| 1 | 2 |
| 2 | 1 |
| 2 | 2 |
+------+------+
Как видите, этот результат содержит 2 дубликата, очевидно, из декартового произведения. Я хотел бы узнать, как я могу сделать это так, чтобы он выводил только:
+------+------+
| code | code |
+------+------+
| 1 | 2 |
+------+------+
Есть подсказка? Спасибо!