Run Code
|
API
|
Code Wall
|
Misc
|
Feedback
|
Login
|
Theme
|
Privacy
|
Patreon
Finde einmalige Datensätze im Vergleich mehrerer Tabellen
#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;
run
|
edit
|
history
|
help
0
Amp
filter the growth rate for current month
Srinivas
ruthresh1
Reviews and Permissions
mywallpk
The cow
Siva7
INSERT INTO customers9(name,gender) VALUES ('Tina', 'f'), ('Saif','m');
name