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 № 1To 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
.