Как SELECT из двух таблиц, разделенных запятой? (SELECT * FROM T1, T2)
Для двух таблиц T1 и T2.
T1 T2
---------
A 1
B 2
C 3
Вы делаете запрос:
SELECT *
FROM T1, T2
Что такое no: из строк, которые извлекаются из этого запроса?
(a) 4
(b) 5
(c) 6
(d) 9
Ответ: 9
Вопрос:
Почему ответ "9"?
Ответ 1
Запятая между двумя таблицами означает CROSS JOIN, которая дает Декартовский продукт из двух таблиц. Ваш запрос эквивалентен:
SELECT *
FROM T1
CROSS JOIN T2
В результате получается каждое спаривание строки из первой таблицы со строкой из второй таблицы. Поэтому количество строк в результате является результатом количества строк в исходных таблицах. В этом случае ответ равен 3 x 3 = 9.