2017-04-13 6 views
0

kann ich nicht den Punkt bekommen.Aus mehreren Tabelle VS innere Verbindung

Was ist der Unterschied zwischen

select e.empid 
from employee_table e 
inner join customer_table c 
on deref(c.infos).personid = deref(e.infos).personid 
order by e.empid; 

und

select e.empid 
from employee_table e, customer_table c 
where deref(c.infos).personid = deref(e.infos).personid 
order by e.empid; 

Die Ergebnisse sind die gleichen. Ist einer schneller als der andere?

Wann verwenden wir einen inneren Join, wenn wir einfach aus mehreren Tabellen auswählen können?

Antwort

1

Da diese beiden Abfragen gleichwertig sind. Die erste verwendet ANSI-92-Joins und die zweite verwendet ANSI-89-Joins. Die neuere Joinsyntax ist weniger fehleranfällig und existiert seit 25 Jahren.

Sie sollten immer die ANSI-92-Joins verwenden. http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/08/bad-habits-to-kick-using-old-style-joins.aspx

+0

Ich habe den Beitrag für e.supervisor bearbeitet. Danke für den Ratschlag. Läuft es genau so in der SQL-Engine? –

+0

Nun, ich weiß nicht, welche SQL-Engine, aber das sind ANSI-Standards und fast jedes DBMS folgt diesen ziemlich nah. Sicherlich bei Joins werden alle wichtigen identisch sein. –

Verwandte Themen