Если вы пишете их в форме, где они дают одинаковые результаты, ожидайте, что анализатор запросов даст вам одинаковые * планы запросов. Это говорит Использование РЕГИСТРИРУЙТЕСЬ не ,
, потому что ,
гораздо менее ясно, и устарел в течение десятилетий
Если вы хотите сравнить производительность двух различных запросов, самый простой способ запустить как и сравнить, как долго они (EXPLAIN query text here
в mysql предложит вам план запроса)
Отметьте, что «Я знаю, что они дают разные результаты, но я хочу быстрее», никогда не бывает разумной в программировании. Вы всегда должны точно знать, какие результаты вы хотите.
I.e.
select table1.a ,table2.b from table1 ,table2 where table1.id=table2.id
имеет такое же значение, как
select table1.a ,table2.b from table1 join table2 on table1.id=table2.id
и
select table1.a ,table2.b from table1 left join table2 on table1.id=table2.id
имеет тот же смысл,
select table1.a ,table2.b from table1 ,table2 where table1.id=table2.id
union
select table1.a , null from table1 where table1.id not in (select table2.id from table2)
и формы, которые вы не использовали присоединиться:
select table1.a ,table2.b from table1 right join table2 on table1.id=table2.id
имеет такое же значение, как
select table1.a ,table2.b from table1 ,table2 where table1.id=table2.id
union
select null, table2.b from table2 where table2.id not in (select table1.id from table1)
И
select table1.a ,table2.b from table1 full join table2 on table1.id=table2.id
имеет такое же значение, как
select table1.a ,table2.b from table1 ,table2 where table1.id=table2.id
union
select table1.a , null from table1 where table1.id not in (select table2.id from table2)
union
select null, table2.b from table2 where table2.id not in (select table1.id from table1)
Я не понимаю вопрос. Не могли бы вы рассказать? – 0xCAFEBABE
Эти два не эквивалентны. 'LEFT JOIN' вернет строки' table1', которые не имеют соответствующей строки 'table2', декартово произведение не вернет эти строки. – Barmar
@ 0xCAFEBABE Используйте приведенные выше два способа запроса одних и тех же данных, но я хотел бы знать, в каком случае использование этого способа будет лучше. – lpgad