Jump to content
Melde dich an, um diesem Inhalt zu folgen  

SQL Island Hilfe

Empfohlene Beiträge

Hallo, ich bräuchte Hilfe bei dem Spiel SQL Island.

Ich zitiere:

"Hallo, Dirty Dieter hält den Piloten im Haus seiner Schwester gefangen. Soll ich dir verraten, wie viele Frauen es in Zwiebelhausen gibt? Ach was, das kannst du schon selbst herausfinden! (Hinweis: Frauen erkennt man an geschlecht = 'w')"

Es gibt folgende Tabellen:

DORF (dorfnr, name, haeuptling)

BEWOHNER (bewohnernr, name, dorfnr, geschlecht, beruf, gold, status)

GEGENSTAND (gegenstand, besitzer)

Danke für alle Antworten. :)

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 4 Minuten schrieb Enno:

Wie wäre denn dein Ansatz?

Ich hatte folgendes versucht:

SELECT COUNT(*) FROM Bewohner.Dorf WHERE Bewohner.Geschlecht = 'w' AND Dorf.Name = 'Zwiebelhausen'

Scheint aber nicht richtig zu sein.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Was soll

Zitat

Bewohner.Dorf

denn bedeuten? Meintest du Bewohner,Dorf? Das ist zwar syntaktisch korrekt, aber inhaltlich verkehrt (weißt du, was das für ein Join ist, den du da ausführst?).

Geh das ganze doch in Schritten an:

1) Selektiere alle Frauen (SELECT * FROM Bewohner WHERE geschlecht = 'w')

2) Selektiere die ID des Dorfes Zwiebelhausen (SELECT dorfnr from Dorf WHERE name = 'Zwiebelhausen')

3) Kombiniere die beiden Anfragen (... WHERE (1) AND ... (2))

Das ist natürlich nicht perfekt und lässt sich eleganter lösen. Aber als erster Schritt sicher ganz hilfreich.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 4 Minuten schrieb arlegermi:

Meintest du Bewohner,Dorf?

Tippfehler, meinte ich natürlich.

vor 4 Minuten schrieb arlegermi:

Geh das ganze doch in Schritten an:

Das wär dem Spiel zu einfach, das sollte alles in einer Abfrage stattfinden.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Hallo @König!

Du brauchst Datensätze aus den Tabellen Dorf und Bewohner. Du verknüpfst die Tabellen über "dorfnr". 

Für die Wahl des richtigen JOINs lasse ich dir diesen exzellenten Artikel da. Der sollte helfen.

https://blog.codinghorror.com/a-visual-explanation-of-sql-joins/

Viel Spaß damit und

Gruß, Goulasz :goulasz: 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 1 Stunde schrieb König:

SELECT COUNT(*) FROM Bewohner.Dorf WHERE Bewohner.Geschlecht = 'w' AND Dorf.Name = 'Zwiebelhausen'

Sieht nicht so schlecht aus, nur gibt es kein "Bewohner.Dorf". Du willst von Bewohner und Dorf selektieren, also "Bewohner, Dorf" und dann noch verknüpfen:

SELECT COUNT(*) FROM Bewohner, Dorf WHERE Bewohner.Geschlecht = 'w' AND Dorf.name = 'Zwiebelhausen' AND Dorf.dorfnr = Bewohner.dorfnr

Es gibt bei Joins zwei Schreibweisen: implizit (dein erster Code) und explizit (dein zweiter Code, also das Join ausgeschrieben).

bearbeitet von pr0gg3r

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
vor 3 Stunden schrieb König:

Das wär dem Spiel zu einfach, das sollte alles in einer Abfrage stattfinden.

Daher ja auch Schritt 3

vor 3 Stunden schrieb arlegermi:

3) Kombiniere die beiden Anfragen (... WHERE (1) AND ... (2)) 

;)

Ich persönlich finde es bei komplexen Anfragen immer hilfreich, diese erst einmal einzeln zu erfassen und am Ende dann zusammenzuführen.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
Melde dich an, um diesem Inhalt zu folgen  

Fachinformatiker.de, 2019 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung