Christian Leicht: 4 mySQL Tabellen gleichzeitig abfragen

Hallo zusammen, ich muss in einer PHP Anwendung 4 mySQL TAbellen gleichzeitig abfragen. Es geht um eine Abfrage eines vorhandenen Shop Systems.

In allen Docs finde ich die Möglichkeit 2 tabellen auszuwählen wie z.B.:

SELECT tabelle1.name,tabelle2.ausgaben FROM tabelle1,tabelle2 WHERE tabelle1.id = tabelle2.id

Aber wie kann ich das mit 4 Tabellen machen ?

Besten Dank für einen Tipp

Christian

  1. abend,

    hab jetzt nicht so recht die motivation das ganze zu erklären ;)
    aber folgendes beispiel sollte dir helfen zumindest den aufbau
    einer mehrTabellen-Abfrage zu verstehen:

    SELECT DISTINCT
     TYP.TYP_ID                   AS  TYP_ID,
     HERSTELLER.BEZEICHNUNG        AS  FABRIKAT_BEZEICHNUNG,
     MODELL.BEZEICHNUNG            AS  MODELL_BEZEICHNUNG,
     VERSION.ID_7403*1000          AS  HUBRAUM,
     FAHRZEUG_TYP.SWK_ANZZYLINDER  AS  ANZZYLINDER
    FROM
     TYP (NOLOCK),
     HERSTELLER (NOLOCK),
     MODELL (NOLOCK),
     VERSION (NOLOCK),
     FAHRZEUG_TYP (NOLOCK),
    WHERE    TYP.TYP_ID = 7
    AND  VERSION.VEHICLE_ID = TYP.VEHICLE_ID
    AND  FAHRZEUG_TYP.TYP_ID = TYP.TYP_ID
    AND  MODELL.MODELL_ID = TYP.MODELL_ID
    AND  HERSTELLER.HERSTELLER_ID = MODELL.HERSTELLER_ID;

    HIH

    mfg,
    (tanz das)
    Z.N.S.

    --
    <img src="http://www.dmp-web.de/comunicout/neubauten.gif" border="0" alt="">
    1. Besten Dank für den Tipp, ich habe das mal auf meine DAten umgesetzt komme aber zu keinem richtigen Ergebnis.

      SELECT DISTINCT manufacturers.manufacturers_name
      FROM categories_description,products_to_categories,products,manufacturers
      WHERE categories_description.categories_id = products_to_categories.categories_id
      AND products.manufacturers_id = manufacturers.manufacturers_id
      AND products_to_categories.products_id = products.products_id
      AND categories_description.categories_name = 'Software'

      Ein (NOLOCK) bringt bei mir nur Fehler.

      Die Ergebnisse sind unvollständig und oft nicht nachvollziehbar. Kann es sein das ich die Reihenfolge der WHERE Clauseln ändern muss ?

      Christian

      abend,

      hab jetzt nicht so recht die motivation das ganze zu erklären ;)
      aber folgendes beispiel sollte dir helfen zumindest den aufbau
      einer mehrTabellen-Abfrage zu verstehen:

      SELECT DISTINCT
       TYP.TYP_ID                   AS  TYP_ID,
       HERSTELLER.BEZEICHNUNG        AS  FABRIKAT_BEZEICHNUNG,
       MODELL.BEZEICHNUNG            AS  MODELL_BEZEICHNUNG,
       VERSION.ID_7403*1000          AS  HUBRAUM,
       FAHRZEUG_TYP.SWK_ANZZYLINDER  AS  ANZZYLINDER
      FROM
       TYP (NOLOCK),
       HERSTELLER (NOLOCK),
       MODELL (NOLOCK),
       VERSION (NOLOCK),
       FAHRZEUG_TYP (NOLOCK),
      WHERE    TYP.TYP_ID = 7
      AND  VERSION.VEHICLE_ID = TYP.VEHICLE_ID
      AND  FAHRZEUG_TYP.TYP_ID = TYP.TYP_ID
      AND  MODELL.MODELL_ID = TYP.MODELL_ID
      AND  HERSTELLER.HERSTELLER_ID = MODELL.HERSTELLER_ID;

      HIH

      mfg,
      (tanz das)
      Z.N.S.

  2. Hallo,
    SELECT tabelle1.name, tabelle2.ausgaben, tabelle3.name,tabelle4.ausgaben
      FROM tabelle1, tabelle2, tabelle3, tabelle4
     WHERE tabelle1.id = tabelle2.id
       AND tabelle1.id = tabelle3.id
       AND tabelle1.id = tabelle4.id

    Oder (meistens schneller):
       SELECT tabelle1.name,tabelle2.ausgaben, tabelle3.name,tabelle4.ausgaben
         FROM tabelle1
    LEFT JOIN tabelle2
           ON tabelle1.id = tabelle2.id
    LEFT JOIN tabelle3
           ON tabelle1.id = tabelle3.id
    LEFT JOIN tabelle4
           ON tabelle1.id = tabelle4.id

    Viele Grüße
    Thomas