2016-10-18 4 views

Antwort

2

Diese Abfrage wird für die Rückgabe ein kartesisches Produkt (https://en.wikipedia.org/wiki/Cartesian_product) beider Tabellen verwendet.

In diesem Fall entspricht 100 x 0 insgesamt 0 Zeilen. Ähnlich wäre 100 x 10 gleich 1K Zeilen.

SELECT Tbl1.* FROM Tbl1 CROSS JOIN Tbl2; 

ODER

SELECT Tbl1.* FROM Tbl1 INNER JOIN Tbl2 ON 1 = 1; 
2
Select t1.* from t1,t2; 

In obiger Aussage, t1,t2 führen kartesisches Produkt von T1 und T2:

Die Abfrage kann auch selbst mit geschrieben werden. Aber da wir wissen, dass t2 leer ist, ist das Ergebnis dieses kartesischen Produkts ein leerer Satz (oder eine leere Tabelle in Bezug auf DBMS).

Daher gibt es 0 Zeilen zurück!

Ich hoffe, es hilft !!

1

Zwischen diesen beiden Tabellen sollte eine Beziehung bestehen. Dann können Sie INNER JOIN anwenden, um Daten abzurufen.

ODER Sie können unten Abfrage verwenden.

Select t1.* from t1,t2 WHERE 1 = 1; 

WHERE 1 = 1 besonders nützlich, wenn dynamische Abfragen entwickelt werden. Weil es eine oder mehrere Bedingungen hinzufügen kann, ohne bereits vorhandene Bedingungen zu überprüfen.

1
SELECT Tbl1.* FROM Tbl1 CROSS JOIN Tbl2; 

SELECT Tbl1.* FROM Tbl1 INNER JOIN Tbl2 ON 1 = 1; 


In above statement tables t1,t2 perform cartesian product of t1 and t2(t1*t2) 
table t1 having 100 records and table t2 having 0 records 
so cartesian product of t1 and t2(t1*t2) 
=100*0 
=0 
so it will not return any records... 
Verwandte Themen