Zum Inhalt springen

MM Relationen

Erstellt am 7. Oktober 2004 · 2 Antworten · letzte Antwort am 11. Oktober 2004

Tags: Frage

Unbekannter Benutzer ·

Hallo Leute!

Ich habe hier mal zur Abwechslung was für die ganz krassen mySQL-Profis !!!

Habe eine Tabelle 'tour' mit Grunddaten, vier Felder sind über MM-Relationen im Typo3 Format ('uid_local = tour.uid; uid_foreign = zuliefertabelle.uid') mit Zuliefertabellen' verbunden. Insgesamt gibt es also 9 Tabellen ('tour', 4x MM, 4x 'Zulieferer').

Jetzt möchte ich nicht einen einfachen JOIN durchführen, sondern die Werte der Zulieferer direkt mit in einer SELECT-Abfrage erhalten ... und diese stehen halt nun nicht in meiner 'tour' Tabelle direkt.

Wie konstruiere ich also nun so ein Abfrage-Monster???

Wäre für eure Hilfe echt dankbar!!!

Grüße,
Commdore

futurmat ·

Hallo Commodore

Commodore schrieb

Jetzt möchte ich nicht einen einfachen JOIN durchführen, sondern die Werte der Zulieferer direkt mit in einer SELECT-Abfrage erhalten ... und diese stehen halt nun nicht in meiner 'tour' Tabelle direkt.

Meinst Du vielleicht eine Abfrage über mehrere Tabellen? Falls das das Problem ist, müßte es so zu lösen sein:

SELECT * FROM zulieferer AS z, tour AS t WHERE z.id = t.zuliefererId;

Danach kannst Du die Daten wie üblich auslesen (sql_fetch_assoc usw.) und auf alle Felder beider Tabellen Bezug nehmen.
Keine Ahnung ob Du das meinst?

Grüße

Futurmat

Unbekannter Benutzer · · Beste Antwort

Habs mit ein wenig Hirnschmalz hinbekommen:

$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery (
  'ts.uid, ts.number, ts.distance, cl.client',
  'tx_meine_ext_definition ts, tx_meine_ext_client cl
  LEFT JOIN tx_meine_ext_tour_definition_office_mm omm ON omm.uid_local = ts.uid
  LEFT JOIN tx_meine_ext_tour_definition_workingarea_mm wmm ON wmm.uid_local = ts.uid
  LEFT JOIN tx_meine_ext_tour_definition_client_mm cmm ON cmm.uid_local = ts.uid',
	'omm.uid_foreign = '.$this->actOfficeId.' AND wmm.uid_foreign = '.$this->actAreaId.' AND cmm.uid_foreign = cl.uid',
  '',
  'ts.uid'
);

Mussten nicht alle 9 Tabs sein 😉

Leider muss ich dennoch eine zweite Abfrage einbauen, da ich für den jeweils ausgewählten Datensatz (über die uid) eine weitere DB-Verknüpfung habe, die erweiterte Infos ausspucken soll und dies hätte ich gerne in die 1. Abfrage gequetscht ...