У меня есть две таблицы SQL, Страны и СтраныI18N:
Countries > Code
CountriesI18N > CountryCode, LanguageCode, Name
Я получаю список стран, выбирающих следующее:
- Код страны.
- Наименование странI18N дано на языке.
Первый параметр T-SQL следующий:
SELECT [x].[Code], (
SELECT TOP(1) [z].[Name]
FROM [CountriesI18N] AS [z]
WHERE ([z].[LanguageCode] = 'en' AND ([x].[Code] = [z].[CountryCode])
) AS [Name]
FROM [Countries] AS [x]
и альтернативное использование Inner Join:
SELECT [x].[Code], [x.CountriesI18N].[Name]
FROM [Countries] AS [x]
INNER JOIN [CountriesI18N] ON [x].[Code] = [x.CountriesI18N].[CountryCode]
WHERE [x.CountriesI18N].[LanguageCode] = 'en'
Они эквивалентны по скорости и эффективности?
Если бы у меня было много связанных таблиц, использующих много InnerJoins или подзапросов, это эквивалентно?