Typische MySQL-Szenarien: Schnittmenge und Differenz zweier Datensätze ermittelnSchritt1. Die Strukturen der beiden Sammlungen müssen konsistent sein, mit entsprechender Anzahl von Feldern und Feldtypen 2. Kombinieren Sie die beiden Sets mit dem Schlüsselwort UNION ALL. Das Ergebnis sind hier alle Sets mit Duplikaten. 3. GROUP BY-ID für alle oben genannten Sets 4. Schließlich HAVING COUNT(id)=1. Wenn es gleich 1 ist, bedeutet dies, dass es nur einmal vorkommt, also handelt es sich um eine Differenzmenge. Wenn es gleich 2 ist, handelt es sich um eine Schnittmenge. Code-DemonstrationUnterschiedDas folgende SQL weist offensichtliche Probleme auf, aber dies ist nur ein Hinweis. Es ist nicht erforderlich, Schnittmenge und Differenz zu verwenden, um eine Abfrage aus einer Tabelle durchzuführen. Die Bedingungen können kombiniert werden, um direkt abzufragen. Es ist gut, die Bedeutung zu verstehen. Mit der folgenden SQL-Anweisung können Sie die ID, den Code und den Namen aller nichttechnischen Mitarbeiter ermitteln WÄHLEN Sie a.* FROM( Wählen Sie ID, Code, Name aus test_emp UNION ALLE Wählen Sie ID, Code, Name aus test_emp, wo Abteilung = 'JSB' )eine GRUPPE NACH a.id HAVING COUNT(a.id)=1 ÜberschneidungMit dem folgenden SQL-Befehl werden alle Mitarbeiter der technischen Abteilung gefunden, die älter als 25 Jahre sind WÄHLEN Sie a.* FROM( Wählen Sie ID, Code, Name aus Test_Emp, wobei Alter > 25 ist UNION ALLE Wählen Sie ID, Code, Name aus test_emp, wo Abteilung = 'JSB' )eine GRUPPE NACH a.id HAVING COUNT(a.id)=2 UnionMit dem folgenden SQL-Befehl können Sie alle Mitarbeiter der technischen Abteilung und alle Mitarbeiter über 30 finden. Union kann doppelte Inhalte automatisch entfernen und einen nicht doppelten Ergebnissatz erhalten WÄHLEN Sie a.* FROM( Wählen Sie ID, Code, Name aus Test_Emp, wobei Alter > 25 ist UNION Wählen Sie ID, Code, Name aus test_emp, wo Abteilung = 'JSB' ) Schnittmenge, Vereinigung, Differenz, Linksverknüpfung, Rechtsverknüpfung in MySQLIch habe MySQL einen Monat lang gelernt. In diesem Monat habe ich je nach Bedarf einige grundlegende Operationen an der Datentabelle durchgeführt. Dabei habe ich häufig Left Join, Right Join, Schnittmenge, Differenzmenge usw. verwendet. Jetzt werde ich die grundlegenden Operationen zusammenfassen. Datenquelle: Tabelle 1:
Tabelle 2:
Linke Verbindung:Verbindet Tabellen basierend auf einer Gleichheitsbedingung. Dieses Experiment soll einen Left Join durchführen, wenn die ID gleich ist Code: wähle a.*,b.Schule AUS (SELECT * FROM mike1.test001) ein LINKS VERBINDEN (SELECT id,school FROM mike1.test003 ) b EIN a.id=b.id Das Ergebnis ist wie folgt: Tabelle 1 wird als Grundlage verwendet, um Tabelle 2 zu verbinden und die gleiche ID-Nummer abzugleichen Richtiger Beitritt:Nehmen Sie Tabelle 2 als Wurzel und führen Sie einen Rechtsverknüpfungsvorgang über die Felder mit der gleichen ID durch. Code: wähle a.*,b.Schule AUS (SELECT * FROM mike1.test001) ein richtig BEITRETEN (SELECT id,school FROM mike1.test003 ) b EIN a.id=b.id Ergebnis: Glauben Sie, dass mit dem Ergebnis ein Problem vorliegt oder nicht? Überschneidung:Durch Verwendung derselben ID-Nummer wird ein innerer Join für Tabelle 1 und Tabelle 2 durchgeführt, wobei dieselben Teile übernommen und die unterschiedlichen Teile weggelassen werden. Code: wähle a.*,b.schule AUS (SELECT * FROM mike1.test001) ein innerer JOIN (SELECT id,school FROM mike1.test003 ) b EIN a.id=b.id Ergebnis: Unterschied:Relativ häufig werden Differenzmengen verwendet, die den Mengenoperationen wie Schnittmenge, Kombination und Vereinigung ähneln, die wir in der Mathematik gelernt haben. Code 1: Holen Sie sich denselben Teil von Tabelle 2 wie Tabelle 1. Dies ist die zweite Methode zum Erhalten der oben erwähnten Schnittmenge. Wählen Sie eine ID, einen Namen, ein Geschlecht, ein Alter und eine Schule aus. AUS (SELECT * FROM mike1.test001) ein Linker äußerer Join (SELECT id,school FROM mike1.test003 ) b EIN a.id=b.id WO b.id NICHT null ist Ergebnis: Code2: Nehmen Sie die Differenz zwischen der ID in Tabelle 1 und der ID in Tabelle 2 und listen Sie schließlich die Daten auf. Wählen Sie eine ID, einen Namen, ein Geschlecht, ein Alter und eine Schule aus. AUS (SELECT * FROM mike1.test001) ein Linker äußerer Join (SELECT id,school FROM mike1.test003 ) b EIN a.id=b.id WO b.id null IST Ergebnis: Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung der CSS-Float-Eigenschaft
>>: Gogs+Jenkins+Docker automatisierte Bereitstellung von .NetCore-Schritten
Hintergrundinformationen Ich habe kürzlich einige...
In diesem Artikel werden hauptsächlich drei Metho...
1. Testumgebung Name Version centos 7.6 Docker 18...
Inhaltsverzeichnis Was passiert, wenn die Ausführ...
Inhaltsverzeichnis Virtueller DOM Was ist virtuel...
Hinweis: nginx über brew installiert Stammverzeic...
Inhaltsverzeichnis 1. Einleitung 2. JDBC implemen...
Übersicht über partitionierte MySQL-Tabellen Wir ...
Inhaltsverzeichnis Was ist ein Plugin Plugins sch...
Inhaltsverzeichnis 1. Seitenlayout 2. Bild-Upload...
Finden Sie das Problem Ich habe kürzlich den Spei...
Vorwort Ich bin kürzlich bei der Arbeit auf ein P...
Wenn Sie Ihr MySQL-Anmeldekennwort vergessen, ist...
Vorwort Nachdem ich lange Zeit verschiedene Mater...
Negative Distanz bezieht sich auf Empathie. Vorwo...