DerHerrKarl
Neuer Benutzer
- Beiträge
- 2
Hallo allerseits
Ich übe gerade am Sql Server und bin auf eine Abfrage gestoßen, wo ich gerne wissen würde ob diese auch ohne Subquerrys gelöst werden kann:
Eine kleine DB für eine Bücherei umfasst kunden, bücher, autoren, genres und verleih.
Ich möchte nun die Bücher abfrage die im Moment nicht ausgeborgt sind, dies würde so funktionieren:
Gäbe es da eine Lösung nur mit joins?
Hier create und insert befehle für meine kleine übungsdatenbank
Gruß Karl
Ich übe gerade am Sql Server und bin auf eine Abfrage gestoßen, wo ich gerne wissen würde ob diese auch ohne Subquerrys gelöst werden kann:
Eine kleine DB für eine Bücherei umfasst kunden, bücher, autoren, genres und verleih.
Ich möchte nun die Bücher abfrage die im Moment nicht ausgeborgt sind, dies würde so funktionieren:
Code:
select distinct b_id, b_name, a_vname+' '+a_nname as 'Autor', g_name as 'Genre'
from buecher
inner join autoren on a_id = b_a_id
inner join genres on g_id = b_g_id
left join verleih on b_id = v_b_id
where b_id not in (select v_b_id from verleih where v_rueckgdat is null)
order by b_id
Gäbe es da eine Lösung nur mit joins?
Hier create und insert befehle für meine kleine übungsdatenbank
Code:
create Database BiblioDB
go
use BiblioDB
GO
Create table autoren
( a_id int identity(1,1) primary key,
a_vname varchar(30),
a_nname varchar(30),
a_herkunft varchar(30),
a_gebdat date,
a_sterdat date
)
create table genres
( g_id int identity(1,1) primary key,
g_name varchar(40)
)
create table kunden
( k_id int identity(1,1) primary key,
k_vname varchar(30),
k_nname varchar(30),
k_gebdat varchar(30),
k_anschrift varchar(200)
)
create table buecher
( b_id int identity(1,1) primary key,
b_name varchar(100),
b_sprache varchar(30),
b_druckjahr decimal(4,0),
b_erstverjahr decimal(4,0),
b_a_id int,
b_g_id int,
foreign key (b_a_id) references autoren(a_id),
foreign key (b_g_id) references genres(g_id)
)
create table verleih
( v_id int identity(1,1) primary key,
v_k_id int,
v_b_id int,
v_ausbdat date,
v_rueckgdat date,
foreign key(v_k_id) references kunden(k_id),
foreign key(v_b_id) references buecher(b_id)
)
go
insert into kunden
Values ('Luke','Skywalker', '01.01.1979','Planet Tatoonie'),
('Darth', 'Vader', '31.12.1957', 'Todestern'),
('Bruce','Wayne', '15.10.1967','Arkham city 666'),
('Satan', 'Der Teufel', '6.6.666', 'Hölle'),
('Peter','Pan', '24.12.1985','Nimmerland'),
('Robin','Hood', '12.6.1877','Sherwood forrest'),
('Peter','Parker', '30.7.1988','New York'),
('Axterix','Der Gallier', '1.1.1980','Gallien'),
('Daeneris','Targarian', '9.9.1999','Westeros'),
('Prinzssin','LeiLei', '5.5.1999','Planet Villach')
insert into genres values ('Krimi'),('Fantasy'),('Sci-Fi'), ('Klassiker'), ('Fachbücher'), ('Kinderbücher'), ('Thriller'), ('Comic'), ('Biogrphien'), ('Erotik'), ('Humor'), ('Musik'), ('Roman')
insert into autoren
values ('Franz', 'Kafka', 'Österreich-Ungarn', '3.6.1883', '3.6.1924'),
('René','Goscinny','Frankreich','14.8.1926','5.11.1977'),
('Robert Anthony','Salvatore','USA','20.1.1959', NULL),
('John Ronald Reuel','Tolkien','England','3.1.1892','2.9.1973'),
('George Raymond Richard','Martin','USA','20.9.1948', NULL),
('Wolfgang','Hohlbein','Deutschland','15.8.1953', NULL),
('Astrid','Lindgren','Schweden','14.11.1907','28.01.2002'),
('Emil Erich','Kästner','Deutschland','23.2.1899','29.7.1974'),
('Thomas','Glavinic','Österreich','2.4.1972', NULL),
('Stephen','King','USA','21.9.1947',NULL),
('Stephen','Hawking','Großbritannien','8.1.1942',NULL),
('Charlotte','Roche','Deutschland','18.3.1978', null),
('Hank','Moody','USA','17.4.1973', NULL),
('Thomas Conrad', 'Brezina', 'Österreich', '30.1.1963',NULL)
insert into buecher
values ('Der Hobbit','deutsch',2016,1937,4,6),
('Der Herr der Ringe I','deutsch',2000,1954,4,2),
('Der Herr der Ringe II','deutsch',2000,1955,4,2),
('Der Herr der Ringe III','deutsch',2000,1955,4,2),
('Wie man leben soll','deutsch',2006,2004,9,13),
('Der gesprungene Kristall','deutsch',1996,1991,3,2),
('Die verschlungenen Pfade','deutsch',1996,1991,3,2),
('Die silbernen Ströme','deutsch',1996,1992,3,2),
('Das Tal der Dunkelheit','deutsch',1996,1992,3,2),
('Die Verwandlung','deutsch',1995,1912,1,4),
('Asterix','deutsch',1986,1959,8,2),
('A Game of Thrones','englisch',1996,1996,5,2),
('A Clash of Kings','englisch',1998,1998,5,2),
('A Storm of Swords','englisch',2000,2000,5,2),
('A Feast for Crows','englisch',2005,2005,5,2),
('A Dance with Dragons','englisch',2011,2011,5,2),
('Die Prophezeiung','deutsch',1993,1993,6,2),
('Pippi in Taka-Tuka-Land','deutsch',2001,1948,7,6),
('Das fliegende Klassenzimmer','deutsch',1980,1933,8,6),
('In einer kleinen Stadt','deutsch',2003,1991,10,7),
('The Universe in a Nutshell','englisch',2001,2001,11,5),
('Feuchtgebiete','deutsch',2010,2008,12,11),
('God hates us all','englisch',2012,2012,13,13)
insert into verleih
values (2,12,'1.1.2016','31.1.2016'),
(3,7,'15.6.2012','11.12.2012'),
(9,5,'12.10.2015','13.12.2015'),
(1,18,'6.6.2016','8.8.2016'),
(10,21,'12.9.2016','13.10.2016'),
(3,3,'4.4.2016','8.7.2016'),
(9,13,'1.1.2015','7.6.2015'),
(5,13,'25.11.2016',null),
(6,16,'19.11.2016',null),
(6,20,'1.11.2016',null),
(4,23,'27.11.2016',null),
(3,7,'15.6.2013','11.12.2013'),
(3,7,'15.6.2014','11.12.2014'),
(9,5,'12.10.2011','13.12.2011'),
(1,18,'6.6.2009','8.8.2009')
Gruß Karl
Zuletzt bearbeitet: