Announcement

Collapse
No announcement yet.

count der fremdschlüssel für jede zeile anzeigen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • count der fremdschlüssel für jede zeile anzeigen

    Guten Morgen zusammen!

    Kann mir vielleicht jemand mit folgendem SQL Problem helfen?

    Ich hab zwei Tabellen:


    Events:
    | id | titel | plaetze |
    --------------------------------------
    | 01 | Skifahren | 12 |
    | 02 | Fußball | 10 |
    | 03 | Schwimmen | 22 |


    Buchungen:
    | id | event_id | Name |
    ---------------------------------------
    | 01 | 03 | Hans |
    | 02 | 03 | Sepp |
    | 03 | 02 | Udo |
    | 04 | 01 | Kati |
    | 05 | 01 | Veronika |
    | 06 | 03 | Rudi |



    Ich möchte in einer Abfrage die Events und die freien Plätze bzw. schon gebuchten Plätze anzeigen.

    Also

    Event | Plätze | bereits vergeben |
    -------------------------------------------------
    Skifahren | 12 | 02 |
    Fußball | 10 | 01 |
    Schwim | 22 | 03 |



    Dazu müsste folgende Abfrage für jede Zeile ausgeführt werden.

    Code:
    SELECT count( * ) AS bereits_vergeben
    FROM buchungen
    WHERE event_id = '1'
    Die Aktuelle event_id soll jedesmal im WHERE eingesetzt werden und in einer neuen Spalte angezeigt werden. Das bekommen ich aber bis jetzt nich hin. Muss ich dafür eine Unterabfrage machen oder wie geht man da vor?

    Vielen Dank
    Marcus

  • #2
    Hallo Marcus,

    so hier!?

    [highlight=SQL]SELECT id, Title, plaetze,
    (SELECT COUNT(*)
    FROM Buchungen
    WHERE Buchungen.event_id = Events.id) AS AnzBuchungen
    FROM Events[/highlight]
    Olaf Helper

    <Blog> <Xing>
    * cogito ergo sum * errare humanum est * quote erat demonstrandum *
    Wenn ich denke, ist das ein Fehler und das beweise ich täglich

    Comment


    • #3
      Hallo,

      mit einem einfachen Join und Gruppierung sollte das auch gehen:
      [highlight=sql]
      select ev.titel Event, ev.plaetze "Plätze", count(bu.id) "bereits vergeben"
      from Events ev
      inner join Buchungen bu on bu.event_id = ev.id
      group by ev.titel, ev.plaetze
      [/highlight]

      Gruß Falk
      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

      Comment


      • #4
        [gelöst] count der fremdschlüssel für jede zeile anzeigen

        Also erstmal Danke!

        Da hab ich wohl mal wieder zu kompliziert gedacht. Methode 1 funktioniert schonmal bestens.

        Methode 2 erscheint mir irgendwie eleganter. Mal sehen ob das deutlich schneller ist.

        Viele Grüße
        Marcus

        Comment

        Working...
        X