Qiuna: Datenbanken und Abfrage

CREATE TABLE personen(
id int NOT NULL AUTO_INCREMENT,
name char(40),
PRIMARY KEY(id)
)

CREATE TABLE projekte(
id int NOT NULL AUTO_INCREMENT,
titel char(40),
PRIMARY KEY(id)
)

CREATE TABLE verhaeltnis(
project int,
person int,
FOREIGN KEY (project) REFERENCES projekte(id),
FOREIGN KEY (person) REFERENCES personen(id)
)

Wenn ich diese 3 Tabellen haben und ein Abfrage machen möchte welche Personen in welchen Projekt zusammen arbeiten, wie sollte diese Abfrage lauten?

SELECT p.name, p.name  FROM personen p, verhaeltni v, projekte pr
WHERE project
AND   p.id = v.person
AND   pr.id = v.project
GROUP BY p.name

Es kommt nur der Name gleicher Name raus, sollten aber die Namen rauskommen, mit denen die Zusammenarbeit am Projekt besteht?
----------------------------------------------------------------------
Wie mache ich die Abfrage, welche für jede Person die Anzahl anderer Personen zurückgibt, mit der sie verbunden ist (Node Centrality, Out Degree)?

Ich weiss das die Abfrage, irgendwie verschachtelt sein sollte.
Hat mir jemand Tipps, Tricks. Danke

  1. Hallo

    SELECT p.name, p.name  FROM personen p, verhaeltni v, projekte pr
    WHERE project
    AND   p.id = v.person
    AND   pr.id = v.project
    GROUP BY p.name

    Diese Abfrage sieht syntaktisch fehlerhaft aus? Unter welchem Datenbanksystem kriegst du die zum Laufen?

    welche Personen in welchen Projekt zusammen arbeiten, wie sollte diese Abfrage lauten?

    SELECT pr.person
    FROM projekte pr
    WHERE pr.project = $X

    gibt dir: Alle Personen, die fuer das Projekt mit der Id $X arbeiten

    SELECT COUNT(*)
    FROM projekte pr
    WHERE pr.project = $X

    gibt dir: die Anzahl der Personen im Projekt mit der Id $X

    SELECT pr.project, COUNT(*)
    FROM projekte pr
    GROUP BY pr.project

    gibt dir die Anzahl der Mitarbeiter pro Projekt.

    Was genau willst du? Evt. wuerden Beispiele mit Daten helfen und wie das Ergebnis aussehen sollte?

    Gruss von der Insel, Frank

    1. Hallo Frank

      Ich arbeite mit MY SQL Workbench.

      Also wenn zum Beispiel:
      Sepp arbeitet Projekt 1
      Walter Projekt 2
      Franz Projekt 1
      Hans Projekt 1

      Dann soll die Ausgabe sein (Tabelle)

      Sepp Franz
      Sepp Hans

      Das heisst Sepp und Franz Arbeiten am gleichen Projekt etc.
      ----------------------------------------------------------------

      Die zweite Ausgabe sollte mir sagen, welche für jede Person die Anzahl anderer Personen zurückgibt, mit der sie verbunden ist. Ich glaube hier kommt eine verschachtelten Abfrage von der oberen Abfrage.

      Sepp 3

      Also Sepp arbeitet mit 3 Personen

      Ich habe keine Ahnung wie diese Abfragen aussehen sollen.

      Vielen Dank für Eure Hilfe.