Você está tão perto!
Como você diz que está exibindo o país e o ano de A e limitando por
A. Country
da Turquia, a Turquia é tudo que você vai ver. Você precisa alterar as seleções para B.country
e B.year
ou altere a cláusula where para B.country
. Isso está usando uma junção cruzada que ficará mais lenta quanto mais registros houver em uma tabela.
SELECT DISTINCT b.Country, b.Year
FROM table1 AS a,
table1 AS b
WHERE a.Year=b.Year
and a.Country='Turkey';
poderia ser escrito como... e provavelmente teria o mesmo plano de execução.
SELECT DISTINCT b.Country, b.Year
FROM table1 AS a
CROSS JOIN table1 AS b
WHERE a.Year=b.Year
and a.Country='Turkey';
OR Isso usa um INNER JOIN que limita o trabalho que o mecanismo deve fazer e não sofre degradação de desempenho que uma junção cruzada causaria.
SELECT DISTINCT a.Country, a.Year
FROM table1 AS a
INNER JOIN table1 AS b
on a.Year=b.Year
and b.Country='Turkey';
POR QUÊ:
Considere o que o mecanismo SQL fará quando a junção ocorrerA B
+------------+------+--------+------------+------+--------+
| A.Country | Rank | Year | B.Country | Rank | Year |
+------------+------+--------+------------+------+--------+
|France | 55 | 2000 |France | 55 | 2000 |
+------------+------+--------+------------+------+--------+
|Canada | 30 | 2000 |France | 55 | 2000 |
+------------+------+--------+------------+------+--------+
|Turkey | 78 | 2000 |France | 55 | 2000 |
+------------+------+--------+------------+------+--------+
|France | 55 | 2000 |Canada | 30 | 2000 |
+------------+------+--------+------------+------+--------+
|Canada | 30 | 2000 |Canada | 30 | 2000 |
+------------+------+--------+------------+------+--------+
|Turkey | 78 | 2000 |Canada | 30 | 2000 |
+------------+------+--------+------------+------+--------+
|France | 55 | 2000 |Turkey | 78 | 2000 |
+------------+------+--------+------------+------+--------+
|Canada | 30 | 2000 |Turkey | 78 | 2000 |
+------------+------+--------+------------+------+--------+
|Turkey | 78 | 2000 |Turkey | 78 | 2000 |
+------------+------+--------+------------+------+--------+
Então, quando você disse exibir
A.Country
e A.Year
onde A.Country
é a Turquia, você pode ver tudo o que pode retornar é a Turquia (devido ao distinto apenas 1 registro) Mas se você fizer
B.Country
é a Turquia e exibe A.Country
, você terá França, Canadá e Turquia!