Project hat mehrere User (Abfrage?)

Alpha63

Mitglied
Hallo,

ich habe zwei Tabellen wph_project und wph_users.

wph_project hat eine spalte user. wph_project.user beinhaltet alle ids die dem project zugehören.

Ich möchte nun per sql befehl das alle zugehörigen user eines projectes angezeigt werden.
Wie mache ich das?

Code:
SELECT username
FROM `wph_users` user, `wph_project` project
WHERE user.id = project.`user` 
LIMIT 0 , 30

Das habe ich bis jetzt. Aber wie muss ich es wirklich machen?
Bis jetzt ist das feld wph_project.user ein int feld. Muss aber glaub ich vchar sein oder? damit ich trennzeichen einfügen kann.

Falls das stimmt mit den trennzeichen, wie kann ich per sql befehlen trennzeichen als solches erkennen?
 
Annahme: Es handelt sich um eine Oracle-Datenbank.

wph_project.user muss denselben Typ haben wie wph_users.id. Denn genau diese Information wird ja darin gespeichert

wph_project.user beinhaltet alle ids die dem project zugehören.
In welcher Form? Hat wph_project pro Kombination User und Projekt eine Zeile? Wenn nicht -> unbedingt da Datenmodel hinterfragen
 
Bitte einmal näher erklären
Code:
wph_user.id = int, auto increment, primary key
wph_project.user = int

Ich möchte user zu einem Projekt zuweisen und ich dachte mir das ich es darüber machen kann.

Wäre es evtl. besser eine weiter Tabelle mit wph_member zu eröffnen?

Code:
wph_member
id : int, primarey
user : int == wph_user.id
und per SQL Anweisung die user aus tabelle wph_member rausholen?
 
Jepp.

Ich geh mal davon aus, dass du eine n zu n beziehung hast. Also jeder
Jeder User kann in mehren Projekten sein. Jedes Projekt kann mehrere User haben

Eine dritte Tabelle mit 2 Feldern. user_id undproject_id.
Dort kommen alle Zuordnungen hinein.
In deiner member-Tabelle fehlt also noch das Projekt
 
Ein einfaches Beispiel wie man eine n zu n Beziehung auflöst:

SQL:
create table project (
id int, name varchar2(20)
);

insert into project values (1, 'Baum pflanzen');
insert into project values (2, 'Haus bauen'):

create table user (
id int, name varchar2(20)
);

insert into user values (1, 'Hans');
insert into user values (2, 'Max');
insert into user values (3, 'Klaus');

create table project_user (
id int, project_id int, user_id int
);

insert into project_user values (1,1,1);
insert into project_user values (2,1,2);
insert into project_user values (3,2,1);
insert into project_user values (4,2,3);

commit;

-- zeige mir die user die beim Projekt 'Haus bauen' mitarbeiten
select
p.name, u.name
from
project p
inner join
project_user pu
on p.id = pu.project_id
inner join
user u
on u.id = pu.user_id
where
p.name = 'Haus bauen';
 

Neue Beiträge

Zurück