В Дерби и/или MySQL, я задаюсь вопросом о производительности:присоединяется против коррелированных подзапросов существует
select c0.documentid from contentblob as c0 where c0.documentid > ?
and c0.blobid = ?
and exists (select * from contentblob c1 where c1.documentid = c0.documentid
and c1.blobid = ?)
order by c0.documentid
Обратите внимание, что РАЗНЫЕ значения будут поставляться для двух blobid сравнений. То, что делает этот запрос, возвращает идентификаторы, которые встречаются в таблице (по крайней мере) дважды: один раз с blobid1 и один раз с blobid2.
по сравнению с эквивалентным автообъединением,
при условии, конечно, индексы на documentid и blobid столбцах таблицы contentblob.
В случае, если неясно, соответствующая схема здесь представляет собой таблицу с двумя столбцами varchar, documentid и blobid. Они составлены для формирования первичного ключа.
Если для этого нет ничего, кроме как запросить анализатор запросов в db, я сделаю это.
См. Править, что я надеюсь, уточнит. Применяются два разных блобида. – bmargulies 2010-12-16 03:27:00