2014-01-19 3 views
0

В чем разница между этими двумя SQL-запросами?В чем разница между этими двумя SQL-запросами?

Запрос # 1:

select mytab.name, mytab.age, films.title, films.author 
from films, mytab 
where films.id = mytab.id; 

Запрос # 2:

select mytab.name, mytab.age, films.title, films.author 
from films inner join mytab 
on films.id = mytab.id; 

Первый нормальный SQL-запрос, используя 'где' заявление. Второй использует внутреннее соединение. Результат обоих запросов точно такой же.

films -> id, title author 
mytab -> id, name, age 

Это самый бедный пример, насколько это возможно.

Вот аналогичный пример: http://www.w3schools.com/sql/sql_join_inner.asp

+0

Обратите внимание, что разница в скорости выполнения не отличается, потому что люди, похоже, очень беспокоятся об этом. –

+0

Они эквивалентны и (должны) привести к идентичным запросам. – wildplasser

ответ

2

Оба запроса дают одинаковые результаты, но единственное различие заключается в синтаксисе,

первый запрос использует старый синтаксис присоединиться, где вы охарактеризовали отношение в WHERE п.

2nd Query использует новый синтаксис ANSI, где отношение между таблицами определено в предложении ON.

Второй синтаксис предпочтительнее.

Read Here для получения дополнительной информации.

2

Они логически эквивалентны, и будет производить те же результаты.

Первый использует старый синтаксис соединения.

Второй использует синтаксис соединения ANSI-92 и является предпочтительным стилем.

Смежные вопросы