У меня много SQL-запросов, таких как:
SELECT o.Id, o.attrib1, o.attrib2
FROM table1 o
WHERE o.Id IN (
SELECT DISTINCT Id
FROM table1
, table2
, table3
WHERE ...
)
Эти запросы должны выполняться на разных движках базы данных (MySql, Oracle, DB2, MS-Sql, Hypersonic), поэтому я могу использовать только общий синтаксис SQL.
Здесь Я читал, что с MySql оператор IN
не оптимизирован и он действительно медленный, поэтому я хочу переключить его на JOIN
.
Я пытался:
SELECT o.Id, o.attrib1, o.attrib2
FROM table1 o, table2, table3
WHERE ...
Но это не учитывает ключевое слово DISTINCT
.
Вопрос: Как избавиться от дублирующихся строк, используя подход JOIN
?