Hallo zusammen,
ich möchte gern eine Abfrage über drei Tabellen via MySQL in einer Abfrage ausführen.
Tabelle 1: ads
Spalten: id, type
Tabelle 2: ads_p
Spalten: id, position, what
Tabelle 3: ads_j
Spalten: id, position, what
Alle IDs sind in Tabelle 1 gespeichert. Allerdings gibt es nun eben zu den jeweiligen IDs entweder einen Eintrag in der Tabelle ads_p oder in der Tabelle ads_j.
Über folgendes Statement bekomme ich die Einträge von ads und ads_p, aber wie kann ich nun auch noch die der 3. Tabelle hinzufügen?
Code :
1
2
3
4
5
6
| SELECT
aid,
position,
what
FROM ads
NATURAL JOIN ads_p |
Vielen Dank für eure Hilfe!!
Lösungsvorschlag:
Wenn es mit dem mysql_query(...); Probleme gibt, pack ein die(mysql_error()); dahinter und guck dir den MySQL-Fehler an!
Hallo,
eine Abfrage mittels UNION würde sich anbieten. Darüber hinaus hast du vergessen, den Foreign Key einzubeziehen.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| (
SELECT id,
position,
what
FROM ads
JOIN ads_p
USING(id)
)
UNION ALL
(
SELECT id,
position,
what
FROM ads
JOIN ads_j
USING(id)
) |
grüße BN
Eine Lösung hätte ich schon, aber sie passt nicht zum Problem.
Perfekt, so funktioniert's. Danke dir!
Geändert von Microhome (21.12.11 um 20:19 Uhr)
Lösungsvorschlag:
Wenn es mit dem mysql_query(...); Probleme gibt, pack ein die(mysql_error()); dahinter und guck dir den MySQL-Fehler an!