В таблице A есть столбец srno
и несколько других столбцов.
В таблице B есть столбцы srno
и id
.
Я хочу получить srno
от B для заданного id
, а затем извлечь записи для этого srno
из таблицы A.
Например, если id равен 7, я могу сделать это двумя способами:
select * from A as table_a, B as table_b where table_a.srno=table_b.srno and table_b.id=7;
А также,
select * from A where srno in (select srno from B where id=7);
Оба делают то же самое. Но когда в обеих таблицах огромное количество записей, что лучше с точки зрения производительности? Или оба будут иметь одинаковую производительность? (Давайте здесь предположим, что для этих двух таблиц была обеспечена правильная индексация и т. д. Я просто хочу сравнить производительность между этими двумя запросами)
distinct
, или вам нужно гарантировать отсутствие дубликатов, сгенерированныхjoin
. - person Gordon Linoff   schedule 13.07.2015