ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
424
424
EMPFEHLEN
-
06.11.07 23:37 #1
- Registriert seit
- Nov 2007
- Beiträge
- 4
Hallo liebe Community,
ich habe folgende Aufgabe, die ich trotz mehrerer Stunden intensiver Bemühungen nicht lösen kann.
So viel sei gesagt, ich kriege am Ende immer Scotland und England angezeigt; nur England ist jedoch richtig...
Aufgabe:
Zeigen Sie das Land/die Länder, in denen ALLE concert_orgniser (NICHT orgAniser) bereits waren.
TABLE: PLACE
place_no--------place_town-------place_country
----------------------------------------------------------------
1------------------Manchester--------England
2------------------Edinburgh----------Scotland
3------------------Salzburg-----------Austria
4------------------New York----------USA
5------------------Birmingham-------England
6------------------Glasgow------------Scotland
7------------------London--------------England
8------------------Chicago-------------USA
9------------------Amsterdam--------Netherlands
TABLE: CONCERT
concert_in--------concert_orgniser
-----------------------------------------------
1---------------------21
1----------------------3
2----------------------3
2---------------------21
3----------------------8
7----------------------8
9----------------------8
4---------------------21
Tables können über JOIN ON concert_in = place_no verbunden werden.
Habt Ihr Lösungsvorschläge? Muss diese Aufgabe bis Ende der Woche lösen und vorstellen... Wäre euch wirklich sehr dankbar für Eure Hilfe!Geändert von sebasian9832 (06.11.07 um 23:42 Uhr)
-
08.11.07 19:14 #2
- Registriert seit
- Nov 2007
- Beiträge
- 4
Hat denn keiner zumindest eine erste Idee?
-
08.11.07 20:36 #3Visit shadowmasta
-
08.11.07 21:41 #4
- Registriert seit
- Nov 2007
- Beiträge
- 4
Jeder der concert_orgniser (3, 8, 21) haben bereits Konzerte veranstaltet in den verschiedenen Ländern (siehe concert_in).
Frage ist nun, in welchem Land sowohl 3, als auch 8 als auch 21 waren. Dies ist lediglich England.
Allerdings weiß ich nicht, wie ich die Abfrage gestalten muss.
Hoffe die Aufgabenstellung ist noch klarer...
-
08.11.07 22:21 #5
- Registriert seit
- Jun 2002
- Ort
- Saarbrücken (Saarland)
- Beiträge
- 9.886
- Blog-Einträge
- 29
Hallo,
Schau mal hier:
Code sql:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
CREATE TABLE places (id INT, town VARCHAR(32), country VARCHAR(32)); INSERT INTO places VALUES (1,'Manchester','England'); INSERT INTO places VALUES (2,'Edinburgh','Scotland'); INSERT INTO places VALUES (3,'Salzburg','Austria'); INSERT INTO places VALUES (4,'New York','USA'); INSERT INTO places VALUES (5,'Birmingham','England'); INSERT INTO places VALUES (6,'Glasgow','Scotland'); INSERT INTO places VALUES (7,'London','England'); INSERT INTO places VALUES (8,'Chicago','USA'); INSERT INTO places VALUES (9,'Amsterdam','Netherlands'); CREATE TABLE concerts (id INT, organizer INT); INSERT INTO concerts VALUES(1,21); INSERT INTO concerts VALUES(1,3); INSERT INTO concerts VALUES(2,3); INSERT INTO concerts VALUES(2,21); --insert into concerts values(2,8); INSERT INTO concerts VALUES(3,8); INSERT INTO concerts VALUES(7,8); INSERT INTO concerts VALUES(9,8); INSERT INTO concerts VALUES(4,21);
Code sql:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
mysql> SELECT * FROM places; +------+------------+-------------+ | id | town | country | +------+------------+-------------+ | 1 | Manchester | England | | 2 | Edinburgh | Scotland | | 3 | Salzburg | Austria | | 4 | NEW York | USA | | 5 | Birmingham | England | | 6 | Glasgow | Scotland | | 7 | London | England | | 8 | Chicago | USA | | 9 | Amsterdam | Netherlands | +------+------------+-------------+ 9 ROWS IN SET (0.00 sec)
Code sql:1 2 3 4 5 6 7 8 9 10 11 12 13 14
mysql> SELECT * FROM concerts; +------+-----------+ | id | organizer | +------+-----------+ | 1 | 21 | | 1 | 3 | | 2 | 3 | | 2 | 21 | | 3 | 8 | | 7 | 8 | | 9 | 8 | | 4 | 21 | +------+-----------+ 8 ROWS IN SET (0.00 sec)
Code sql:1 2 3 4 5 6 7 8 9 10
mysql> SELECT x.country FROM ( SELECT p.id,p.country,COUNT(DISTINCT c.organizer) organizerCount FROM places p INNER JOIN concerts c ON p.id = c.id GROUP BY country ) x WHERE x.organizerCount >= ALL(SELECT COUNT(DISTINCT organizer) FROM concerts); +---------+ | country | +---------+ | England | +---------+ 1 ROW IN SET (0.00 sec)
Fügt mann dann noch einen Satz zu den Konzerten in Scottland hinzu:
Code sql:1
INSERT INTO concerts VALUES(2,8);
Bekommt man:
Code sql:1 2 3 4 5 6 7 8 9
mysql> SELECT x.country FROM ( -> SELECT p.id,p.country,COUNT(DISTINCT c.organizer) organizerCount FROM places p INNER JOIN concerts c ON p.id = c.id GROUP BY country -> ) x WHERE x.organizerCount >= ALL(SELECT COUNT(DISTINCT organizer) FROM concerts); +----------+ | country | +----------+ | England | | Scotland | +----------+
Gruß TomJava rocks!
How to become a good Java Programmer?
Does IT in Java and .Net
The only valid measurement of code quality: WTFs / minute
Blog
Xing
Twitter
-
08.11.07 22:57 #6
- Registriert seit
- Nov 2007
- Beiträge
- 4
Vielen Dank Tom!
Wirklich viel Mühe hast Du Dir gegeben.
Der Vorletzte, längere SQL Code, ist ja genau das, was zur Lösung führt.
Jedoch verstehe ich nicht genau, wie das nun funktioniert hat.
Könntest Du mir das mal formulieren, was da wie abgefragt wird?
Dankeschön für Deine Hilfe
Ähnliche Themen
-
Knifflige Aufgabe im Adobe Illustrator
Von _Alex_ im Forum Vektor-ProgrammeAntworten: 5Letzter Beitrag: 30.08.10, 09:11 -
knifflige Abfrage
Von Online-Skater im Forum Relationale DatenbanksystemeAntworten: 3Letzter Beitrag: 09.06.06, 00:26 -
Knifflige Aufgabe (pixel genau Bild mit div-tag markieren)
Von LN5 im Forum PHPAntworten: 3Letzter Beitrag: 04.01.06, 20:22 -
habe eine knifflige Aufgabe bekommen und kann Sie nicht lösen bitte helfen
Von Evola im Forum C/C++Antworten: 10Letzter Beitrag: 19.11.04, 22:52 -
Knifflige Mathe Aufgabe bitte helft mir
Von danielmueller im Forum SmalltalkAntworten: 10Letzter Beitrag: 28.05.04, 16:38





Zitieren

Login





