4 mySQL Tabellen gleichzeitig abfragen
Christian Leicht
- datenbank
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
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.
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.
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