Как работает SELECT из двух таблиц, разделенных запятой? (ВЫБРАТЬ * ОТ T1, T2)

С учетом двух таблиц T1 и T2.

T1   T2 
---------
A    1 
B    2
C    3

Вы делаете запрос:

SELECT * 
  FROM T1, T2

Что такое число строк, которые выбираются из этого запроса?

(a) 4
(b) 5
(c) 6
(d) 9

Ответ: 9

Вопрос:

Почему ответ «9»?

31
задан Bill the Lizard 19 September 2012 в 22:16
поделиться

1 ответ

Запятая между двумя таблицами означает CROSS JOIN , что дает декартово произведение двух таблиц. Ваш запрос эквивалентен:

SELECT *
FROM T1
CROSS JOIN T2

Результатом является каждая пара строки из первой таблицы со строкой из второй таблицы. Таким образом, количество строк в результате является произведением количества строк в исходных таблицах. В этом случае ответ будет 3 x 3 = 9.

Строки будут следующими:

T1.foo   T2.bar
A        1
A        2
A        3
B        1
B        2
B        3
C        1
C        2
C        3
79
ответ дан 27 November 2019 в 21:46
поделиться
Другие вопросы по тегам:

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