/ / dlaczego 9 wierszy jest pobieranych z tego zapytania? - sql, mysql, sql-server

dlaczego 9 wierszy jest pobieranych z tego zapytania? - sql, mysql, sql-server

Given 2 tables T1 and T2.
T1  T2
A   1
B   2
C   3
You make a query SELECT * FROM T1, T2.
What is the no: of rows that are fetched from this query?

Odpowiedź jest 9

Odpowiedzi:

10 dla odpowiedzi № 1

To zapytanie powoduje produkt kartezjański ponieważ nie podano żadnych innych warunków. Każdy wiersz z pierwszej tabeli jest dopasowywany do każdego wiersza z drugiej tabeli.

Wynik to

A 1
A 2
A 3
B 1
B 2
B 3
C 1
C 2
C 3

3 dla odpowiedzi № 2

Ponieważ każdy rekord z pierwszej tabeli jest zwracany wraz z każdym rekordem drugiej tabeli, a wynik nie jest filtrowany.

Dokładne wyniki będą następujące:

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

(zamówienie może się różnić)


2 dla odpowiedzi nr 3

Jest to produkt kartezjański: wybierz wszystkie wiersze z jednej tabeli (3) i wszystkie wiersze z innej tabeli (3) i połącz je, więc 3 * 3 = 9.


0 dla odpowiedzi nr 4

Właśnie o to prosiłeś. Masz wszystkie wiersze T1 i wszystkie wiersze od T2. Nie są po prostu łączone - to nie zadziała, jeśli kolumny są inne, na przykład, chociaż możesz to zrobić UNION - zostają połączone w coś, co jest znane jako "produkt kartezjański", zasadniczo otrzymujesz wszystkie kombinacje wierszy z obu tabel. 3*3 = 9.