Поскольку вы не используете другие таблицы для своих возвращаемых столбцов, возможно, это будет быстрее:
SELECT DISTINCT a.Name, a.Description
FROM a, b, c
WHERE a.id1 = b.id1
AND b.id2 = c.id2
Глядя на возвращаемые столбцы, поскольку критерии, по-видимому, состоят только в том, что они должны быть связаныот a
до b
до c
вы можете искать все уникальные пары a.Name
и a.Description
.
SELECT DISTINCT a.Name, a.Description
FROM a
WHERE a.id1 IN (
SELECT b.id1
FROM b
WHERE b.id2 IN (
SELECT c.id2
FROM c
)
)
Или, в зависимости от того, есть ли каждая пара a.Name
и a.Description
уже уникален, должен быть некоторый выигрыш в поиске сначала уникального идентификатора, а затем извлечения других столбцов.
SELECT a.Name, a.Description
FROM a
WHERE a.id1 IN (
SELECT DISTINCT a.id1
FROM a
WHERE a.id1 IN (
SELECT b.id1
FROM b
WHERE b.id2 IN (
SELECT c.id2
FROM c
)
)
)