Почему () обязателен в SQL-операторе “выбор * от ВНУТРЕННЕГО ОБЪЕДИНЕНИЯ подарков sentgifts использование (одаренного)”;?

Почему () обязателен в SQL-операторе

select * from gifts INNER JOIN sentgifts using (giftID); 

? () обычно для определения группировки чего-то. Но в этом случае, мы, как предполагается, можем использовать 2 или больше имен полей...? в примере выше, может быть все ясно, что это - 1 поле, это просто, который синтаксический анализатор не сделан обойти (), когда это все ясно? (такой как на языке Ruby).

1
задан 太極者無極而生 24 April 2010 в 16:24
поделиться

2 ответа

Да, вы можете указать несколько столбцов внутри предложения using как показано ниже.

using(col_1,col_2,col_3)
1
ответ дан 3 September 2019 в 01:02
поделиться

Фактически вы можете указать список столбцов , проверьте здесь .

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

Тем не менее, можно утверждать, что USING сам по себе уже просто синтаксический сахар , это просто сокращение для указания соединения с обычным синтаксисом ON в случае, если имена столбцов в объединенных таблицах совпадают.

Поскольку вы можете присоединиться к НА нескольких столбцах, ИСПОЛЬЗОВАНИЕ делает то же самое.

Следующие операторы являются , следовательно, эквивалентны :

SELECT A.c1, A.c2, A.c3 FROM TABLE_A A
JOIN TABLE_B B 
ON A.c1 = B.c1 
ON A.c2 = B.c2 
ON A.c3 = B.c3

и

SELECT A.c1, A.c2, A.c3 FROM TABLE_A A
JOIN TABLE_B B 
USING (c1,c2,c3)
1
ответ дан 3 September 2019 в 01:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: