Mordor
Registered User
Mahlzeit alles zusammen
Ich bin seit Tagen auf der Suche nach einer Möglichkeit aus drei Tabellen mit einer Query Daten rauszubekommen. Das Problem hierbei ist, dass in einer Tabelle mehrere Datensätze drin stehen, die auf einer anderen Tabelle referenizeirt sind. Hier mal der Aufbau der Tabellen:
Tabelle 1:
+----+---------------+
| id | title |
+----+---------------+
| 1 | worktypes |
| 2 | Firma |
| 3 | neues projekt |
+----+---------------+
Tabelle 2:
+----+-----------------------+-----+
| id | title | ref |
+----+-----------------------+-----+
| 1 | arbeit 1 | 1 |
| 2 | arbeit 2 | 1 |
| 3 | arbeit 3 | 1 |
| 4 | Projekt 1 | 2 |
| 5 | Projekt 2 | 2 |
| 6 | Projekt 3 | 2 |
| 7 | projekt 4 | 2 |
| 8 | Projekt 5 | 3 |
| 9 | veranstaltung 3 | 3 |
| 10 | veranstaltung 2 | 3 |
| 11 | veranstaltung | 3 |
+----+-----------------------+-----+
Tabelle 3:
+----+----------+-----------+-----------+---------+
| id | title | work_id | comp_id | pro_id |
+----+----------+-----------+-----------+----------+
| 1 |content 1| 1 | 5 | 10 |
| 2 |content 2| 3 | 7 | 9 |
| 3 |content 3| 1 | 8 | 10 |
+-----+---------+------------+-----------+----------+
Die Tabellen sind folgendermaasen verknüpft:
tabelle1.refid = tabelle2.ref
Bei Tabelle 3 wird das schon wieder komplizierter hier gibt es nämlich drei Referenzfelder, je nachdem um was es sich handelt:
tabelle2.id = tabelle3.work_id (wenn tabelle2.ref = tabelle1.id=1)
tabelle2.id = tabelle3.comp_id (wenn tabelle2.ref = tabelle1.id=2)
tabelle3.id = tabelle3.pro_id (wenn tabelle2.ref = tabellen1.id=3)
ich suche jetzt nach einem SELECT, der es mir ermöglicht so abzufragen, dass wenn ich tabelle3 abfrage, dass mir dann anstatt von work_id, comp_id, und pro_id die namen aus Tabelle2 ausgegeben werden. Das ganze sollte dann in etwar so aussehen:
±----+---------+-----------------+------------+---------------------+
| id | title | worktype | Firma | neues Projekt |
+-----+--------+-----------------+-------------+--------------------+
| 1 |content1| arbeit 1 | Projekt 2 | veranstaltung 2 |
| 2 |content2| arbeit 3 | projekt 4 | veranstaltung 3 |
| 3 |content3| arbeit 1 | projekt 4 | veranstaltung 2 |
+----+---------+-----------------+------------+---------------------+
Vielleicht kann mir jemand helfen. Vielleicht ist so eine Abfrage auch nicht möglich. Ich möchte es halt mit so wenig wie möglichen Abfragen machen, um es icht in PHP lösen zu müssen.
Kurz zum System:
Mysql 5.0 (aus den Debian Paketen)
PHP 5.2.6 (aus den Debian Paketen)
Gruß Mordor
Ich bin seit Tagen auf der Suche nach einer Möglichkeit aus drei Tabellen mit einer Query Daten rauszubekommen. Das Problem hierbei ist, dass in einer Tabelle mehrere Datensätze drin stehen, die auf einer anderen Tabelle referenizeirt sind. Hier mal der Aufbau der Tabellen:
Tabelle 1:
+----+---------------+
| id | title |
+----+---------------+
| 1 | worktypes |
| 2 | Firma |
| 3 | neues projekt |
+----+---------------+
Tabelle 2:
+----+-----------------------+-----+
| id | title | ref |
+----+-----------------------+-----+
| 1 | arbeit 1 | 1 |
| 2 | arbeit 2 | 1 |
| 3 | arbeit 3 | 1 |
| 4 | Projekt 1 | 2 |
| 5 | Projekt 2 | 2 |
| 6 | Projekt 3 | 2 |
| 7 | projekt 4 | 2 |
| 8 | Projekt 5 | 3 |
| 9 | veranstaltung 3 | 3 |
| 10 | veranstaltung 2 | 3 |
| 11 | veranstaltung | 3 |
+----+-----------------------+-----+
Tabelle 3:
+----+----------+-----------+-----------+---------+
| id | title | work_id | comp_id | pro_id |
+----+----------+-----------+-----------+----------+
| 1 |content 1| 1 | 5 | 10 |
| 2 |content 2| 3 | 7 | 9 |
| 3 |content 3| 1 | 8 | 10 |
+-----+---------+------------+-----------+----------+
Die Tabellen sind folgendermaasen verknüpft:
tabelle1.refid = tabelle2.ref
Bei Tabelle 3 wird das schon wieder komplizierter hier gibt es nämlich drei Referenzfelder, je nachdem um was es sich handelt:
tabelle2.id = tabelle3.work_id (wenn tabelle2.ref = tabelle1.id=1)
tabelle2.id = tabelle3.comp_id (wenn tabelle2.ref = tabelle1.id=2)
tabelle3.id = tabelle3.pro_id (wenn tabelle2.ref = tabellen1.id=3)
ich suche jetzt nach einem SELECT, der es mir ermöglicht so abzufragen, dass wenn ich tabelle3 abfrage, dass mir dann anstatt von work_id, comp_id, und pro_id die namen aus Tabelle2 ausgegeben werden. Das ganze sollte dann in etwar so aussehen:
±----+---------+-----------------+------------+---------------------+
| id | title | worktype | Firma | neues Projekt |
+-----+--------+-----------------+-------------+--------------------+
| 1 |content1| arbeit 1 | Projekt 2 | veranstaltung 2 |
| 2 |content2| arbeit 3 | projekt 4 | veranstaltung 3 |
| 3 |content3| arbeit 1 | projekt 4 | veranstaltung 2 |
+----+---------+-----------------+------------+---------------------+
Vielleicht kann mir jemand helfen. Vielleicht ist so eine Abfrage auch nicht möglich. Ich möchte es halt mit so wenig wie möglichen Abfragen machen, um es icht in PHP lösen zu müssen.
Kurz zum System:
Mysql 5.0 (aus den Debian Paketen)
PHP 5.2.6 (aus den Debian Paketen)
Gruß Mordor