Как 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"? Лучший ответ: Запятая между двумя таблицами означает CROSS

Вопрос:

Для двух таблиц 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”?

Лучший ответ:

Запятая между двумя таблицами означает 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

Оцените статью
Добавить комментарий