Heim Datenbank MySQL-Tutorial sql join,outer-join,semi-join,anti-join的区别

sql join,outer-join,semi-join,anti-join的区别

Jun 07, 2016 pm 05:49 PM
from join loop select

本文章来分析介绍关于mssql sql中的sql join,outer-join,semi-join,anti-join的区别 ,有需要的同学可以参考一下下哈。

表连接的方式如join,semi-join,outer-join,anti-join;
表连接的实现方式如nested loop,merge,hash.
本文简单的介绍表连接的方式join,semi-join,outer-join,anti-join和适用情景。

假设2个数据源(row source).
Emp(id pk,ename,deptno) Dept(deptno pk,dname)

如下是join
ename,dname from emp,dept where emp.deptno=dname.deptno;
2个数据源键值一一比较,返回相互匹配的记录集

 代码如下 复制代码

for example: nested loop join
for x in ( select * from emp )
loop
for y in ( select * from dept)
loop
if ( x.deptno == y.deptno )
OutPut_Record(x.ename,y.dname)
End if
end loop
end loop

outer-join
select ename,dname from emp,dept where emp.deptno= dept.deptno(+);
select ename,dname from emp,dept where emp.deptno(+)=dept.deptno;


2个数据源键值一一比较,返回相互匹配的;但如果在另外一个row source没有找到匹配的也返回记录

 代码如下 复制代码
for example: nested loop outer-join
for x in ( select * from emp )
loop
find_flag=false;
for y in ( select * from dept)
loop
if ( x.deptno == y.deptno )
OutPut_Record(x.ename,y.dname)
Find_flag=true
End if
end loop
if ( find_flag == false )
OutPut_Record(x.ename,null)
End if
end loop
semi-join
select dname from dept where exists( select null from emp where emp.deptno=dept.deptno)

多在子查询exists中使用,对外部row source的每个键值,查找到内部row source匹配的第一个键值后就返回,如果找到就不用再查找内部row source其他的键值了。
for example: nested loop semi-join

 

 代码如下 复制代码

for x in ( select * from dept )
loop
for y in ( select * from emp)
loop
if ( x.deptno == y.deptno )
OutPut_Record(x.dname)
Break;
End if
end loop
end loop

anti-join
select ename,deptno from emp,dept where emp.deptno!=dept.deptno

多用于!= not in 等查询;如果找到满足条件(!= not in)的不返回,不满足条件(!= not in)的返回。和join相反。
 for example: nested loop anti-join

 代码如下 复制代码
for x in ( select * from emp )
loop
for y in ( select * from dept)
loop
if ( x.deptno != y.deptno )
OutPut_Record(x.dname,y.deptno)
End if
end loop
end loop
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So verwenden Sie JOIN in MySql So verwenden Sie JOIN in MySql Jun 04, 2023 am 08:02 AM

Die Bedeutung von JOIN ist genau wie das englische Wort „join“. Es verbindet zwei Tabellen und kann grob in Inner Join, Outer Join, Right Join, Left Join und Natural Join unterteilt werden. Erstellen Sie zunächst zwei Tabellen. Das Folgende wird als Beispiel verwendet: CREATETABLEt_blog(idINTPRIMARYKEYAUTO_INCREMENT,titleVARCHAR(50),typeIdINT);SELECT*FROMt_blog;+----+------+--------+ |. id|title|typeId|+----+-------+--------+|1|aaa|1||2|bbb|2||3|ccc|3 |

Asynchrone Verarbeitungsmethode von Select Channels Go zur gleichzeitigen Programmierung mit Golang Asynchrone Verarbeitungsmethode von Select Channels Go zur gleichzeitigen Programmierung mit Golang Sep 28, 2023 pm 05:27 PM

Asynchrone Verarbeitungsmethode der gleichzeitigen Programmierung von SelectChannelsGo mit Golang Einführung: Die gleichzeitige Programmierung ist ein wichtiger Bereich in der modernen Softwareentwicklung, der die Leistung und Reaktionsfähigkeit von Anwendungen effektiv verbessern kann. In der Go-Sprache kann die gleichzeitige Programmierung mithilfe von Channels- und Select-Anweisungen einfach und effizient implementiert werden. In diesem Artikel wird die Verwendung von Golang für die asynchrone Verarbeitungsmethode der gleichzeitigen Programmierung von SelectChannelsGo vorgestellt und spezifische Informationen bereitgestellt

So verbergen Sie das ausgewählte Element in jquery So verbergen Sie das ausgewählte Element in jquery Aug 15, 2023 pm 01:56 PM

So verbergen Sie das Select-Element in JQuery: 1. Methode hide (), fügen Sie die jQuery-Bibliothek in die HTML-Seite ein, Sie können verschiedene Selektoren verwenden, um das Select-Element auszublenden, der ID-Selektor ersetzt die SelectId durch die ID des von Ihnen ausgewählten Elements tatsächlich verwenden; 2. css()-Methode, verwenden Sie den ID-Selektor, um das ausgewählte Element auszuwählen, das ausgeblendet werden muss, verwenden Sie die css()-Methode, um das Anzeigeattribut auf „none“ zu setzen, und ersetzen Sie selectId durch die ID des ausgewählten Elements.

Was ist das Nutzungsprinzip von MySQL Join? Was ist das Nutzungsprinzip von MySQL Join? May 26, 2023 am 10:07 AM

Der Join-Typ Leftjoin verwendet die linke Tabelle als treibende Tabelle und die linke Tabelle als Basis der Ergebnismenge. Die Daten aus der rechten Tabelle werden mit der Ergebnismenge verbunden. Rightjoin verwendet die rechte Tabelle als treibende Tabelle und die rechte Tabelle als Die Basis der Ergebnismenge besteht darin, die Daten zur Ergebnismenge hinzuzufügen. Die Ergebnismenge nimmt die Vereinigung der beiden Tabellen an fulljoin. Der Unterschied zwischen Union und Unionall besteht darin, dass Union das kartesische Crossjoin-Produkt dedupliziert. Wenn die Where-Bedingung nicht verwendet wird, ist die Ergebnismenge das Produkt und die beiden zugehörigen Tabellenzeilen Crossjoin erstellt die Ergebnismenge, sie wird gemäß der On-Bedingung übergeben.

So implementieren Sie die Änderungsereignisbindung ausgewählter Elemente in jQuery So implementieren Sie die Änderungsereignisbindung ausgewählter Elemente in jQuery Feb 23, 2024 pm 01:12 PM

jQuery ist eine beliebte JavaScript-Bibliothek, die zur Vereinfachung der DOM-Manipulation, Ereignisbehandlung, Animationseffekte usw. verwendet werden kann. Bei der Webentwicklung stoßen wir häufig auf Situationen, in denen wir die Ereignisbindung für ausgewählte Elemente ändern müssen. In diesem Artikel wird erläutert, wie Sie mit jQuery ausgewählte Elementänderungsereignisse binden, und es werden spezifische Codebeispiele bereitgestellt. Zuerst müssen wir ein Dropdown-Menü mit Optionen erstellen, die Beschriftungen verwenden:

Was ist der Grund, warum Linux select verwendet? Was ist der Grund, warum Linux select verwendet? May 19, 2023 pm 03:07 PM

Da Select es Entwicklern ermöglicht, gleichzeitig auf mehrere Dateipuffer zu warten, kann dies die E/A-Wartezeit verkürzen und die E/A-Effizienz des Prozesses verbessern. Die Funktion select() ist eine E/A-Multiplexfunktion, die es dem Programm ermöglicht, mehrere Dateideskriptoren zu überwachen und darauf zu warten, dass einer oder mehrere der überwachten Dateideskriptoren „bereit“ werden. Bezieht sich auf: die Datei Der Deskriptor ist nicht mehr blockiert und kann für bestimmte Arten von E/A-Vorgängen verwendet werden, einschließlich lesbarer, beschreibbarer und Ausnahmen. select ist eine Computerfunktion, die sich in der Header-Datei #include befindet. Diese Funktion wird verwendet, um Dateideskriptoränderungen zu überwachen – Lesen, Schreiben oder Ausnahmen. 1. Einführung in die Auswahlfunktion Die Auswahlfunktion ist eine E/A-Multiplexfunktion.

Was sind die Join-Abfrage- und Mehrfachabfragemethoden von MySQL? Was sind die Join-Abfrage- und Mehrfachabfragemethoden von MySQL? Jun 02, 2023 pm 04:29 PM

Welche ist im Vergleich zu Join-Abfragen und mehreren Abfragen effizienter: MySQL-Abfragen mit mehreren Tabellen oder mehrere Abfragen mit einzelnen Tabellen? Wenn die Datenmenge nicht groß genug ist, ist die Verwendung von Join kein Problem, sie erfolgt jedoch normalerweise auf der Serviceebene. Erstens: Die Rechenressourcen einer Einzelmaschinendatenbank sind sehr teuer und die Datenbank muss beide Schreibvorgänge unterstützen und Lesen gleichzeitig, was einen CPU-Verbrauch erfordert. Der Durchsatz wird höher und das Unternehmen kümmert sich nicht um die Verzögerungslücke von Hunderten von Mikrosekunden bis hin zu Millisekunden. Das Unternehmen wird mehr Berechnungen in die Serviceschicht einbinden Schließlich können Computerressourcen leicht horizontal erweitert werden, und Datenbanken sind schwierig. Daher werden die meisten Unternehmen reine Computeroperationen in die Serviceschicht verlagern und die Datenbank als KV-System mit Transaktionsfunktionen verwenden.

So verwenden Sie JOIN in MySQL So verwenden Sie JOIN in MySQL Jun 03, 2023 am 09:30 AM

Einleitung A's Unique + AB's Public B's Unique + AB's Public AB's Public A's Unique B's Unique A's Unique + B's Unique + AB's Public A's Unique + B's Unique Üben Sie das Erstellen von Tabellen. 11)NOTNULLAUTO_INCREMENT,`dept_name`varchar(30)DEFAULTNULL,`dept_number`int(11)DEFAULTNULL,PRIMARYKEY(`dept_id`))ENGINE =InnoDBAUT

See all articles