Run Code
|
API
|
Code Wall
|
Users
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Finde einmalige Datensätze im Vergleich mehrerer Tabellen
Language:
Ada
Assembly
Bash
C#
C++ (gcc)
C++ (clang)
C++ (vc++)
C (gcc)
C (clang)
C (vc)
Client Side
Clojure
Common Lisp
D
Elixir
Erlang
F#
Fortran
Go
Haskell
Java
Javascript
Kotlin
Lua
MySql
Node.js
Ocaml
Octave
Objective-C
Oracle
Pascal
Perl
Php
PostgreSQL
Prolog
Python
Python 3
R
Rust
Ruby
Scala
Scheme
Sql Server
Swift
Tcl
Visual Basic
Layout:
Vertical
Horizontal
#MySQL 5.7.12 #please drop objects you've created at the end of the script #or check for their existance before creating #'\\' is a delimiter select version() as 'mysql version'; create table IF NOT EXISTS tabelle1 (id bigint, vorname varchar(20), nachname varchar(20)); insert into tabelle1 (id, vorname, nachname) values (1, 'Egon', 'Leuchter'), (2, 'Hans', 'Wurst'), (3, 'Max', 'Mustermann'), (4, 'Karl', 'Heinz'), (5, 'Kai', 'Uwe'), (6, 'Daniel', 'Düsentrieb'); create table IF NOT EXISTS Tabelle2 (Datum date, Person1 varchar(20), Person2 varchar(20), Person3 varchar(20), Person4 varchar(20), Person5 varchar(20)); insert into tabelle2 values ('26.06.2017', 'Leuchter', 'Wurst', 'Mustermann', 'Heinz', 'Uwe'), ('27.06.2017', 'Mustermann', 'Max', 'Mustermann', 'Heinz', 'Uwe'); create table IF NOT EXISTS Tabelle3 (Datum date, Person1 varchar(20), Person2 varchar(20), Person3 varchar(20), Person4 varchar(20), Person5 varchar(20)); insert into tabelle3 values ('26.06.2017', 'Arm', 'Wurst', 'Mustermann', 'Karl', 'Hans'); -- Vorbedingung: -- gibt es NUll Werte in den Daten? > Das SQL Statement müsste das berücksichtigen select * from tabelle1 where nachname is null or vorname is null; select * from tabelle2 where person1 is null or person2 is null or person3 is null or person4 is null or person5 is null; -- Wir wollen alle Datensätze mit Werten, die nur in Tabelle1 allein vorkommen -- 1.Beispiel, Vergleich einer einzigen Spalte SELECT id, t1.nachname, t2.person1 FROM tabelle1 t1 LEFT JOIN tabelle2 t2 ON t1.nachname = t2.person1 WHERE t2.person1 is null; -- 2. Beispiel, Vergleich zweier spezifischer Spalten SELECT id, t1.nachname, t2.person1 FROM tabelle1 t1 LEFT JOIN tabelle2 t2 ON t1.nachname = t2.person1 AND t1.vorname = t2.person2 WHERE t2.person1 is null; -- and t2.person1 is null -- diese Bedingung ist nicht unbedingt notwendig, das hängt von den vorhandenen NULL Werten der Basisdaten ab -- 3. Beispiel -- weitere Spalten ergänzen -- ... bitte ergänzen drop table tabelle1; drop table tabelle2; drop table tabelle3;
absolute service time: 0,39 sec
edit mode
|
history
|
discussion
mysql version
1
5.7.12-log
id
nachname
person1
1
2
Wurst
NULL
2
4
Heinz
NULL
3
5
Uwe
NULL
4
6
Düsentrieb
NULL
id
nachname
person1
1
1
Leuchter
NULL
2
2
Wurst
NULL
3
4
Heinz
NULL
4
5
Uwe
NULL
5
6
Düsentrieb
NULL